Rails 使い分け find_by! where

お気に入り機能

お気に入りに入っているかどうかを見極める関数

questionをお気に入りに追加する場合、
model/question.rb に関数を書く。

エラーしたコード;

def favorited_by?(user, question)
Favorite.where(user_id: user.id).find_by!(question_id: question.id).exists?
end

エラー:

NoMethodError at /users/14/questions/10

undefined method `exists?' for #<Favorite:0x007f947dd18558>

 

解決策:find_by!ではなくwhereを使う。

    Favorite.where(user_id: user.id).where(question_id: question.id).exists?