循环通过相关模型并比较id

时间:2012-12-06 15:03:05

标签: ruby-on-rails for-loop

关系是用户有多种治疗和治疗属于用户,一对多。

现在我要打印出所有具有此特定处理的用户

在我的治疗中show查看我有这个双循环

<% User.all do |user| %> 

  <%= user.treatments.each do |t| %> 

    <% if (t.id).to_i == (@treatment.id).to_i %> 
      <%= link_to user.name, user_path(user) %><br />
    <% end %>

  <% end %>
<% end %>

如果我将<% User.all do |user| %>更改为<%= User.all do |user| %>,则会打印出我的用户表格中的所有内容

你们有没有发现为什么我没有得到任何用户?

我在内部循环的开头放了一条消息,它也没有显示,猜猜问题就在那里,但我没有看到它

1 个答案:

答案 0 :(得分:1)

.all返回一个数组。数组不接受块。最有可能的是,你想做.each但忘了写它。试试这个:

<% User.all.each do |user| %> 

但更好的方法是不要像这样迭代所有用户,而是直接从数据库中获取正确的列表。