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

xiaoxiao · 2013年05月31日 · 最后由 xiaoxiao 回复于 2013年06月02日 · 3846 次阅读

项目需要一个搜索的功能,两个搜索框,可以选择与(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

需要 登录 后方可回复, 如果你还没有账号请 注册新账号