在show动作中,如何列出关联模型中的对象?

时间:2015-07-23 12:24:04

标签: ruby-on-rails

我想在这里做的是列出项目中每项活动的条目。

app / controllers / projects_controller.rb:

class ProjectsController < ApplicationController
    def index
        @projects = Project.all
    end

    def show
        @project = Project.find(params[:id])
        @activities = @project.activities
    end
end

app / views / projects / show.html.erb:

  <div>
    <p><%= @project.description %></p>

    <% @activities.each do |activity| %>
      <div>
        <p><%= activity.name %></p>

        <% activity.entries.each do |entry| %>  <= the error is at this line
            <p><%= entry.name %></p>
        <% end %>

      </div>
    <% end %>
  </div>

我的模特是:

  • 项目:有很多活动
  • 活动:有很多条目,属于项目
  • 参赛作品:属于活动

我运行时获得的错误: show文件中的“未初始化的常量Activity :: Saisy”

我不知道我是否可以将每个循环放在其他每个循环中?也许这就是问题所在,但我找不到其他方法来做到这一点......

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

尝试将activity重命名为a,也许activity是保留的作品

 <div>
    <p><%= @project.description %></p>

    <% @activities.each do |a| %>
     <div>
      <p><%= a.name %></p>

      <% a.entries.each do |entry| %>
         <p><%= entry.name %></p>
      <% end %>
     </div>   
   <% end %>
</div>