我正在尝试这样做:
query << ["AND f.name LIKE '%:last_name%' ", :last_name => params[:last_name] ]
但是收到错误。当然语法不正确。 有谁知道怎么做?
答案 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] }])
因此您无需构建类似的查询。