На консоли 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])
(хорошо, это также упрощенный пример, но гораздо более яркий пример того, что я пытаюсь выполнить)