Luk*_*mer 2 ruby activerecord ruby-on-rails ruby-on-rails-3 ruby-on-rails-4
我无法弄清楚在一行中为我的控制器写这个where语句的正确方法.
我在这里错过了什么?
@food_ranks = FoodRank.where("user_id = ? AND rank = ?", current_user.id, [0, 1, 2])
Run Code Online (Sandbox Code Playgroud)
这是我尝试用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")
Run Code Online (Sandbox Code Playgroud)
@food_ranks正确显示这样的对象.为什么现在不让我这样做呢?
@food_rank each do |rank|
rank.user_id
end
Run Code Online (Sandbox Code Playgroud)
是@food_ranks字面意思是where声明吗?(未定义的方法)
试试这种方式:
@food_ranks = FoodRank.where("user_id = ? AND rank IN (?)", current_user.id, [0, 1, 2])
Run Code Online (Sandbox Code Playgroud)
你也可以这样做:
@food_ranks = FoodRank.where(user_id: current_user.id, rank: [0, 1, 2])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |