has_many通过获取相关值

时间:2011-06-16 17:18:35

标签: ruby-on-rails-3

从多个关系中提取相关数据的最佳方法是什么?

如果我的任务和类别通过分类加入,我想在索引视图中显示任务及其相关类别的列表。

我已尝试将以下内容放入我的控制器中:

@tasks = Task.find(:all, :include => :taskcategories )

但是失败了。

在我看来,我试过这个:

<% for task in @tasks %>

<li><%= task.title %> <%= task.taskcategory_name %></li>

<% end %>

那也失败了。

1 个答案:

答案 0 :(得分:1)

鉴于您的关联定义是正确的,您可以:

@tasks = Task.find(:all, :include => :categories)

...并在视图中:

<% for task in @tasks %>
  <li><%= task.title %> <%= task.categories.map{|c| c.name}.join(', ') %></li>
<% end %>