来自select和active记录的多个值,其中'where in'

时间:2014-05-26 11:57:51

标签: ruby-on-rails activerecord html-select

我陷入了一个问题,我无法解决。我有一个选择标签如下:

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建议。

此致

1 个答案:

答案 0 :(得分:1)

您可以使用此:https://gist.github.com/wakiki/3312792

使用后:

@user = User.where(interest: params[:interest]).or.where(interest: nil)