0

この関係は、1 人のユーザーが複数の処理を持ち、1 つの処理がユーザーに属するという 1 対多の関係です。

今、私はこの特定の治療を受けているすべてのユーザーを出力したい

私の治療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| %>と、users テーブルのすべてが出力されます

なぜ私がユーザーを獲得していないのか分かりますか?

内部ループの先頭にメッセージを入れましたが、どちらも表示されませんでした。問題があると思いますが、表示されません

4

1 に答える 1

1

.all配列を返します。配列はブロックを受け入れません。ほとんどの場合、あなたはやりたいのですが、.eachそれを書くのを忘れていました。これを試して:

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

しかし、より良い方法は、このようにすべてのユーザーを反復するのではなく、データベースから直接正しいリストを取得することです。

于 2012-12-06T15:05:03.687 に答える