これは私のコントローラのステートメントを1行に書く正しい方法を理解できません。正しい値の配列を持つステートメントを書く方法
私はここで何が欠けていますか?
@food_ranks = FoodRank.where("user_id = ? AND rank = ?", current_user.id, [0, 1, 2])
ここでは、3行で記述しようとしています。
@food_ranks = Array.new(FoodRank.where("user_id = #{current_user.id} AND rank = 0"))
@food_ranks << FoodRank.where("user_id = #{current_user.id} AND rank = 1")
@food_ranks << FoodRank.where("user_id = #{current_user.id} AND rank = 2")
@food_ranks
は、このようなオブジェクトを正しく表示します。なぜこれで私はこれのような何かをさせませんか?
@food_rank each do |rank|
rank.user_id
end
実際にはどこのステートメントですか?@food_ranks
はどこですか? (未定義のメソッド)
トップランクに 'rank IN(?)'と書く必要はありません.Railsによって生成されます。 –
私は、最初のクエリでは、それはまだ必要だと思います。 2番目のものは必要ありません。だから私は2番目のクエリで 'IN'を使わなかったので、Railsは自動的にそれを行います。 –