如何在Rails视图中迭代关联项的集合

时间:2014-02-01 15:54:54

标签: ruby-on-rails

我有两种模式:

class WorkPlan < ActiveRecord::Base
  has_many :work_plan_tasks
end 

class WorkPlanTask < ActiveRecord::Base
  belongs_to :work_plan
end

我的表单和索引操作都按照预期与关联一起工作。

我正在尝试修改工作计划的show view,以便显示属于相关工作计划的工作计划任务。

我在显示视图的底部添加了下面的代码,用于工作计划,但它不断爆炸,我花了太多时间修补代码。

非常感谢任何帮助。

<% @work_plan.work_plan_task in @work_plan_task %>
    <%= work_plan_task.task_name %?
<% end %>

1 个答案:

答案 0 :(得分:3)

通常不会在Rails视图中循环遍历项目。试试这个:

<% @work_plan.work_plan_tasks.each do |work_plan_task| %>
    <%= work_plan_task.task_name %>
<% end %>

each调用符合您的预期:遍历数组,将项目通过work_plan_task传递到循环中。

如果您想按照编写它的方式进行操作,则可以使用语法。

<% for work_plan_task in @work_plan.work_plan_tasks %>
    <%= work_plan_task.task_name %>
<% end %>

...虽然老实说我甚至都不知道这是否有用,但我从未尝试过。 : - )

最后,请注意@work_plan_taskwork_plan_task是不同的变量。