【发布时间】:2011-07-06 03:46:45
【问题描述】:
我希望能够在活动记录查询 (Rails 2.3.12) 的 :select 部分中的 MAX() sql 调用中指定用户特定条件。不幸的是,安全字符串插值似乎不适用于 :select 条件。代码如下,有没有其他方法可以手动确保传入的值是安全的? (它们应该只是 id,但你永远不能太确定。)
: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(他们没有但其他人有)或 nil(没有人有明确的权限)。
【问题讨论】:
标签: sql ruby-on-rails activerecord