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 %>

しかし、何らかの理由で、これはメソッドエラーをスローしません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 に答える