簡體   English   中英

每個Ruby都有未定義的方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM