我陷入了一个问题,我无法解决。我有一个选择标签如下:
select_tag :interest,options_from_collection_for_select(@InterestAreas, "id",
"InterestArea"),{:prompt => "Interest Area", :multiple => true}
如你所见,我有:multiple => true
,这将允许我选择值。
使用这些选定值,我想按如下方式运行活动记录查询:
@user = User.find(:all, :conditions => ['((?) is null or "users"."interest" in (?))',
interest,interest])
选择单个值它工作正常。但是当我从选择中提供多个值时,会出现以下错误:
SQLite3::SQLException: near ",": syntax error: SELECT "users".* FROM "users" WHERE
((('2','4') is null or "users"."interest" in ('2','4')))
这与哈希有关。但我不知道该怎么办。我应该在我在活动记录参数中传递它之前转换它。 Plz建议。
此致
答案 0 :(得分:1)
您可以使用此:https://gist.github.com/wakiki/3312792
使用后:
@user = User.where(interest: params[:interest]).or.where(interest: nil)