无法弄清楚此AR查询的语法

时间:2011-07-07 04:02:01

标签: ruby-on-rails ruby ruby-on-rails-3 syntax

我正在尝试运行此查询:

Result.where('link = #{site}').present?

其中site是一个字符串。但是上面代码的问题在于,由于单引号,site将不会被插值。

如果我尝试

Result.where("link = #{site}").present?

我收到语法错误。

我怎么写这个?

2 个答案:

答案 0 :(得分:0)

第二天你会被黑客入侵。它有严重的SQL injection问题。

你需要做的是:

Result.where(:link => site)

或者如果您需要除了相等之外的其他内容,那么这种语法更好:

    Result.where('link <> ?', site)

您可以阅读更多here

答案 1 :(得分:-1)

如果我的记忆服务,我认为你可以加倍报价:

Result.where('"link = #{site}"').present?