【发布时间】:2015-07-10 10:32:37
【问题描述】:
我习惯了 Rails 2 并且有一个现有的查询:
@players = Player.find(
:all,
:select => 'players.*, positions.name AS "position_name"',
:joins => 'LEFT JOIN positions ON positions.id = players.position_id',
:conditions => ['status IN (?, ?, ?, ?)', 'd', 'i', 'n', 'u']
)
我正在尝试编写 Rails 4 等效项,但收到错误 unexpected ')', expecting keyword_end,这是查询的右括号。
@players = Player
.select('players.*, positions.name AS "position_name"')
.joins('LEFT JOIN positions ON positions.id = players.position_id')
.where(status: ['d', 'i', 'n', 'u'])
)
我已尝试阅读文档,但看不出哪里出错了。
另外,如果这是使用 params 散列而不是硬编码值,上述内容是否不会受到 sql 注入的影响,如果是这样,如何编写它以使用第一个 Rails 2 查询中的占位符?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4.2