【发布时间】:2013-10-18 10:47:01
【问题描述】:
我为我们的支持者制作了一个支持票证系统 - 使用 ruby on rails (Ruby 1.9.3 Rails 3.2) 进行编程
有一个与用户(支持者)关联belongs_to 的票证模型。
我使用 Ernie 的宝石 Ransack 进行搜索。 当支持者搜索他自己的门票(由tickets_controller.index 处理)时,他还应该在搜索结果(views/tickets/index)中看到未关联的门票(结合其他搜索条件,例如“日期”或其他)
(这样他就可以拿一张未开票)
预期的 SQL 语句:
SELECT * FROM tickets WHERE ... AND (user_id=5 OR user_id IS NULL) AND ...
我在索引视图的搜索表单中尝试了user_id_null_or_user_id_eq - 但这不起作用(没有方法错误)
如何制作自定义谓词(或 ransacker)来解决此问题? (感谢@Magnuss 的评论)
很遗憾,我没有使用 Arel 的经验
类似:
ransacker :user_null_or_eq do
...
end
在门票模型中。
我希望这能更详细地解释问题。
感谢您的帮助。
【问题讨论】:
-
您似乎没有提供足够的信息来提供帮助。
-
看来 Ransack 不会让你做
null_or查询。您必须创建自己的谓词(ransacker ?)。 -
@Beerlington - 我试图更详细地解释这个问题
标签: ruby-on-rails arel ransack