我为我们的支持者制作了一个支持票系统 - 使用 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
在门票模型中。
我希望这能更详细地解释问题。
谢谢你的帮助。