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])
(わかりました、これも単純化された例ですが、私が達成しようとしていることをはるかに表しています)