新手问题 Rails 里面组合查询如何实现?

xiaoxiao · May 31, 2013 · Last by xiaoxiao replied at June 02, 2013 · 3838 hits

项目需要一个搜索的功能,两个搜索框,可以选择与(and)或者或(or)的关系,数据库有 name email phone 这三个字段,这样的功能需求用什么 gem 比较合适,我的环境是 rails3.2.8 ruby1.9.3 如果不用 gem 的话 就用 find 语句也应该能行的,当是遇到了一些问题,我的方法是 第一个搜索框的搜索结果是 @girls1= Girl.find(:all, :conditions => ["name like ? or email like ? or phone like ?","%#{params[:value1]}%","%#{params[:value1]}%","%#{params[:value1]}%"]) 第二个搜索框的搜索结果是 @girls2= Girl.find(:all, :conditions => ["name like ? or email like ? or phone like ?","%#{params[:value2]}%","%#{params[:value2]}%","%#{params[:value2]}%"]) 用什么语句将两者结合起来输出结果,or 就是这两者之和,and 就是两者之交

解决了用两个 where 语句就可以二次查找了

Rails 3 还在用 Girl.find(:all, conditions => xxx) 的语法?

Girl.where('xxx').where('xxx')

http://guides.rubyonrails.org/active_record_querying.html#overriding-conditions

You need to Sign in before reply, if you don't have an account, please Sign up first.