Raj*_*ran 5 ruby rubygems ruby-on-rails meta-search ransack
我有一个ActiveRecord模型,其方法定义如下:
def state
if deleted?
:deleted
else
:expired
end
end
Run Code Online (Sandbox Code Playgroud)
'search_method'在模型中定义为:
search_method:state
在视图中:
= form.select:state,{:expired =>'Expired',:deleted =>'Deleted'} .invert,:include_blank =>'All'
使用Meta_search,这种方法运行正常.但是当我用Ransack替换gem时,我得到:Sample Controller中的ArgumentError没有状态的有效谓词.
我正在从meta_search search_methods中跟踪此行为,因此我可能采取了错误的方法.有人帮我吗?
小智 0
Ransack 使用添加到您要搜索的字段末尾的谓词来指示如何搜索它。如果您的模型上有 的属性:state,则可以使用“将记录与您选择的任何状态相匹配”来搜索与“过期”或“已删除”匹配的form.select :state_match,状态_match。(诸如_cont(包含)或_start(以)开头)。
Ransack 使用 SQL 查询来查找记录,因此如果您的模型上有一个属性,例如:deleted_at您可以按存在或缺失进行搜索。它不会查看方法,只会查看数据库中存储的信息。
更多谓词和信息位于:https ://github.com/activerecord-hackery/ransack/wiki/Basic-Searching
| 归档时间: |
|
| 查看次数: |
1356 次 |
| 最近记录: |