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