2012-12-12 124 views
0

我需要使用多个条件构建搜索。其中主要有两个:城市和州和邮政编码。反过来,我有其他布尔属性,如has_transportation,available_for_work等。我面临的问题是我想让我的搜索灵活。意思是,对于布尔属性,用户可以选择Either。总共有六个布尔属性,以及基于zip或城市和州的搜索。Rails 3.2.9多个条件搜索

在我看来,我在考虑多个条件语句,但这看起来并不像Rails方式或完成此搜索时最有效的方式。有人可以就如何解决我的问题提供建议吗?

更新:

采样方案

t.integer "zip_code",    :null => false 
t.boolean "availability",   :default => true 
t.integer "travel_distance",  :default => 0 
t.boolean "transportation",   :default => false 
t.boolean "insurance",    :default => false 
t.boolean "tools",     :default => false 
t.boolean "employee",    :default => false 
t.boolean "subcontractor",   :default => false 
t.string "city" 
t.string "state" 

输出:返回的将是零个或多个账户

这里的结果是什么,我要使用的一个例子:

scope :tools, lambda { |arg| arg.blank? ? where("tools = ? OR tools = ?", true, false) : where(:tools => arg)} 
+0

请向我们展示适当的表模式,示例数据和您的预期输出。 – bonCodigo

+1

你有没有尝试链命名的范围? –

+0

谢谢安塔尔。我认为链接命名范围将为我工作。 – Brian

回答

0

看看Ransack和它的demo app

Ransack将帮助您构建搜索表单和针对模型运行查询。

由于你的问题缺乏很多细节,我的答案也必须。