people
にはoccasions
からgifts
までの数字が多く、その逆の場合はhas_many through:
という関係があります。レコードがレコードに存在するかどうかを調べるhas_many〜
それがモデルに適切に設定されます:
person.rb
は、このようなものです:
belongs_to :user
has_many :gifts
has_many :occasions, through: :gifts
occasion.rb
は、このようなものです:
belongs_to :user
has_many :gifts
has_many :people, through: :gifts
gift.rb
は、このようなものです:
belongs_to :user
belongs_to :person
belongs_to :occasion
ビューでは、y軸にpeople
、x軸にoccasions
、適切なセルにgifts
のテーブルを作成しようとしています。私は私のgifts#index
ビューでこれを持っている:
<table>
<tr>
<th>Recipient</th>
<% @occasions.each do |occasion| %>
<th><%= occasion.name %></th>
<% end %>
</tr>
<% @people.each do |person| %>
<tr>
<td>
<a href="#edit-recipient-popup" class="open-popup-link">
<p><strong><%= person.name %></strong></p>
</a>
</td>
<% @occasions.each do |occasion| %>
<td>
<% if @gift.where(person_id: person.id, occasion_id: occasion.id) %> <<<<<<THIS LINE IS THE ISSUE
<%= gift.name %>
<% else %>
<h1>
<%= link_to new_gift_path do %>
<i class="icon ion-ios-add green"></i>
<% end %> <!-- link -->
</h1>
<% end %> <!-- if/else end -->
</td>
<% end %> <!-- occasions each -->
</tr>
<% end %> <!-- people each -->
</table>
ここに私の問題は、私がnilのためundefined method
場所」を取得し、行に表示されている、ということである:NilClassビューで. I assume this is because you can't use controller logic like
WHERE`が、私は方法がわからないんだけどそうでなければ、これをフレーズする。
誰でも私がこのタスクを成功裏に「railsy」のやり方で成功させる手助けをすることができますか?
コントローラコードも追加できますか? –