xij*_*ijo 6 activerecord ruby-on-rails searchlogic
我在版本2.3.5中使用'binarylogic-searchlogic'gem以及Rails 2.3.4.
我想要做的是在模型上搜索多个属性上的指定值.我通过将所有东西链接在一起来实现这一点
User.first_name_or_last_name_or_email_like(value)
Run Code Online (Sandbox Code Playgroud)
但是在这个搜索中有越来越多的属性,这往往是丑陋的.相反,我想使用searchlogic的搜索机制,如下所示:
search = User.search
search.first_name_like = value
search.last_name_like = value
..
@users = search.all
Run Code Online (Sandbox Code Playgroud)
所以这是通过AND搜索的方式 - 但我想要的是OR.我找到了两种方法来实现这一目标,但两种方法都不起作用.
第一个:在条件前面加上or_
search = User.search
search.first_name_like = value
search.or_last_name_like = value
@users = search.all
Run Code Online (Sandbox Code Playgroud)
这给了我 The or_last_name_like is not a valid condition. You may only use conditions that map to a named scope
第二个:使用 search.any
search = User.search
search.first_name_like = value
search.last_name_like = value
@users = search.any
Run Code Online (Sandbox Code Playgroud)
给了我undefined method任何'for #`.
有什么想法吗?我是否认为自述的正确点?
谢谢你非常欢迎的帮助!
编辑:一些丑陋的解决方法的时间:
search = User.search
search.first_name_like = value
search.last_name_like = value
User.find(:all, :conditions => search.scope(:find).gsub('AND','OR'))
Run Code Online (Sandbox Code Playgroud)
工作,但肯定不是要走的路,不是吗?
| 归档时间: |
|
| 查看次数: |
2364 次 |
| 最近记录: |