Rails 3.2.9搜索多个条件

时间:2012-12-12 13:51:28

标签: mysql ruby-on-rails

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

在我看来,我正在考虑多个条件语句,但这似乎不是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)}

1 个答案:

答案 0 :(得分:0)

查看 Ransack ,它是 demo app

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

既然你的问题缺乏很多细节,我的回答也是如此。