构建数组时的Rails占位符

时间:2013-03-12 13:19:40

标签: ruby-on-rails

我正在尝试这样做:

query << ["AND f.name LIKE '%:last_name%' ", :last_name => params[:last_name] ]

但是收到错误。当然语法不正确。 有谁知道怎么做?

3 个答案:

答案 0 :(得分:1)

这是一个数组还是哈希?第一项看起来像一个数组,第二项看起来像一个哈希。没有一些背景,很难说。你可以先尝试这个:

["AND f.name LIKE '%:last_name%' ", {:last_name => params[:last_name]} ]

答案 1 :(得分:1)

如果查询是一个数组,你可能想要传递一个字符串,这样你就不会得到一个数组数组,你可以这样做:

Rails 3

query << "AND f.name LIKE '%#{params[:last_name]}%' "

Rails 2

last_name = ActionController::Base.helpers.sanitize(params[:last_name])
query << "AND f.name LIKE '%#{last_name}%' "

答案 2 :(得分:0)

由于您没有使用rails 3,因此您应该使用scoped来链接查询

records = Record.scoped(:conditions => { :active => true })
records = records.scoped(:conditions => ["records.name LIKE '%:last_name%' ", { :last_name => params[:last_name] }])

因此您无需构建类似的查询。