Ren*_*nan 6 ruby-on-rails-3 ransack
我的模型中有一个布尔属性(已发布),我book希望使用该值的复选框过滤所有书籍.
class Book < ActiveRecord::Base
attr_accessible :published
end
Run Code Online (Sandbox Code Playgroud)
这意味着,我想是这样eq_any,但对于true或false.有没有办法用Ransack做到这一点?
UPDATE
我希望用户能够只选择出版的书籍,只选择未出版的书籍和任何书籍.所以单个复选框不会.
选择的答案效果很好,但是,至少在 2016 年,可以写出更好的东西。利用“eq”功能可以删除一些配置。最终结果是:
<%= f.select :published_eq, [['Yes', true], ['No', false]], include_blank: 'All' %>
Run Code Online (Sandbox Code Playgroud)
Renan,您可以使用“true”和“false”谓词来执行此操作(其他谓词列在下面的文档链接中)。
在您的表单中,您的复选框代码将如下所示:
<%= f.checkbox :published_true %>
<%= f.checkbox :published_false %>
Run Code Online (Sandbox Code Playgroud)
因此,在您的表单中,选中第一个复选框 (published_true) 将返回已发布为 true 的所有书籍,选中第二个框 (published_false) 将返回已发布为 false(未发布)的所有书籍,并且在不选中任何一个框的情况下提交表单将返回返回所有书籍。
更多信息可以在此处的文档中找到: https: //github.com/ernie/ransack/wiki/Basic-Searching
| 归档时间: |
|
| 查看次数: |
3865 次 |
| 最近记录: |