在我的应用程序中为长期标题道歉,我试图从数据库中找到与我传递给它的参数匹配的最后一条记录。
@goals = Weight.last(:is_goal=>true,:user_id=>@user.id)
在我的视图中,我想运行一个条件来检查是否有任何存在,如果有,它将显示一个div。
<% if @goals.any? %>
<% @goals.each do |goal| %>
<p><%= goal.amount %></p>
<% end %>
<% end %>
但由于某种原因,这会抛出无方法错误NoMethodError at /
undefined method 'any?'
。如果我将.last
更改为.all
,则可以使用
@goals = Weight.all(:is_goal=>true,:user_id=>@user.id)
这背后是否有任何原因或者我发现了一个错误?
答案 0 :(得分:1)
好吧,.last
方法返回一个对象,.all
方法返回一个对象数组
.any?
是一种数组方法。你不能在一个对象上调用.any?
,除非你创建了一个方法,否则它会告诉你没有方法。