【发布时间】:2011-03-15 21:40:11
【问题描述】:
从 rails 控制台,运行以下命令会产生意想不到的结果:
User.where(:id => [1,2]).where(:id => 2).arel.to_sql
=> "SELECT `users`.* FROM `users` WHERE (`users`.`id` IN (1, 2) OR `users`.`id` = 2)"
我没想到会是OR。
这个例子是一个非常简化的无表格User 模型的例子,它定义了一个方法:
def cars
Car.where(:id => list_of_users_car_ids_not_from_the_database)
end
Cars 保存在数据库中。然后在控制器中
current_user.cars.find(params[:id])
(好吧,这也是一个简化的例子,但更能代表我想要完成的工作)
【问题讨论】:
标签: ruby-on-rails-3 activerecord arel active-relation