[英]Undefined method each Ruby
破敗不堪。 一個人可以有很多出價,這個特定的人只有一個出價。
在我的索引操作中,我有@bids = Bid.find_by_person_id(params[:person_id])
在我看來,我做到了
<% @bids.each do |bid| %>
<%= bid.bid_amount %>
<% end %>
我在獲取人員出價的索引視圖時得到NoMethodError: undefined method each' for #<Bid:0x007f988a346f00>
。
這是因為這個人只有一個出價嗎? 我覺得不是這樣,但除此之外我不知所措。
find_by
返回第一個項目。 我想你在找
Bid.where(person_id: params[:person_id])
Austio
的回答是正確的。
但是,為什么要直接調用Bid
模型?...
一個人可以有很多出價
您顯然是從人員模型構建數據,所以為什么不調用以下內容:
@person = Person.find params[:person_id]
@bids = @person.bids #-> bids belong to @person
這將構建集合而不調用where
。
當然,您的方法僅使用單個數據庫查詢。 但即使如此,上述內容也更為直觀。
-
另外,您還需要在循環之前使用條件:
<% if @bids.any? %>
<% @bids.each.... %>
<% end %>
有一個出價很好,但沒有一個會導致循環吐出錯誤。 以上解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.