简单搜索rails

时间:2010-03-15 12:58:46

标签: ruby-on-rails

我在rails中制作一个简单的搜索表单。在我的搜索视图中,我有两个具有固定值的选择框,如:

SELECT BOX 1          SELECT BOX 2
ALL,                  ALL,
FR,                   FR,
US,                   US,
DE                    DE

我的数据库中有2个字段country_fromcountry_to

因此,对于从FRUS进行简单搜索,我使用:

@search_result = Load.find(:all, :conditions => "country_from='#{params[:country_from]}' AND country_to='#{params[:country_to]}'" )

这很好,但我也需要实施ALL选项,因此当我从DEALL进行搜索时,我会在{{}}中找到包含所有国家/地区的列表{1}}

I image我可以用ifs来做...但是最有效的方法是什么?

2 个答案:

答案 0 :(得分:1)

如果我理解正确,那就是

@search_result = Load.find(:all, :conditions => ["country_from = ? AND country_to IN (?)", params[:country_from], params[:country_to]])

答案 1 :(得分:1)

这就是你要做的:

cond = {}
cond[:country_from] = params[:country_from] unless params[:country_from] == "AL"
cond[:country_to] = params[:country_to] unless params[:country_to] == "AL"

@search_result = Load.all(:conditions => cond)