0

为冗长的标题道歉,在我的应用程序中,我试图从数据库中检索与我传递给它的参数匹配的最后一条记录。

@goals = Weight.last(:is_goal=>true,:user_id=>@user.id)

在我看来,我想运行一个条件来检查是否存在任何存在,如果存在它将显示一个 div。

<% if @goals.any? %>
    <% @goals.each do |goal| %>
        <p><%= goal.amount %></p>
    <% end %>
<% end %>

但由于某种原因,这会引发 no method error NoMethodError at / undefined method 'any?'。如果我将其更改.last.all有效

@goals = Weight.all(:is_goal=>true,:user_id=>@user.id)

这背后有什么原因还是我发现了一个错误?

4

1 回答 1

1

好吧,.last方法返回一个对象,.all方法返回一个对象数组。
并且.any?是数组方法。你不能调用.any?一个对象,它会告诉你没有方法,除非你创建了一个。

于 2013-03-25T18:28:11.590 回答