У меня есть ситуация, когда мне нужно разрешить создание SQL вручную из формы. У меня есть что-то вроде этого:Проверка SQL в where where
SomeModel.where("id in (#{custom_sql})")
где custom_sql
является оператор выбора следующим образом:
SELECT u.id FROM some_model u WHERE country_iso = 'AU'
Я хочу, чтобы иметь возможность поймать исключение StatementInvalid, возникающее, когда недопустим SQL в WHERE , но я не могу понять, как это сделать.
begin
SomeModel.where("id in (#{custom_sql})")
rescue
puts "Error"
end
Но он продолжает падать без ошибок. Тем не менее в rails c
, когда я делаю User.where("id in (#{custom_sql})")
, он будет корректно ошибочным. Есть идеи?
Считаете ли вы использование объединений? Кажется, это идеальное решение для вашего образца кода. –