Я хочу иметь возможность указывать специфичные для пользователя условия в вызове MAX () sql в части: select запроса активной записи (Rails 2.3.12). К сожалению, безопасная интерполяция строк не работает для условия: select. Код ниже, есть ли другой способ вручную убедиться, что входящие значения безопасны? (Они должны быть такими, какие они есть, но вы никогда не можете быть слишком уверены.)
:select => ["`component_instances`.*, max(`users`.id = ? AND `permissions`.view = 1) AS user_view, max(`users`.id = ? AND `permissions`.edit = 1) AS user_edit", user.id]
Запрос предназначен для того, чтобы указать мне, есть ли у конкретного пользователя явные разрешения для определенного элемента на сайте. Он либо вернет 1 (они делают), 0 (они не делают, но другие делают), либо ноль (никто не имеет явных разрешений).