在控制器中得到这样的搜索结果后:
@q = SomeModel.ransack(q)
字符串
我想根据搜索结果(@q
)再查询一次。
SELECT * FROM ransack_result WHERE some_field IN ('a', 'b', 'c')
型
是否有任何方法来申请额外的查询?
更多背景信息:
在Rails 7中,some_field
是用ActiverRecord::Encryption
加密的。当我尝试使用q[:some_field_in] = ['a', 'b', 'c']
包含WHERE some_field IN ('a', 'b', 'c')
时,'a'
,'b'
,'c'
都是加密的。
我在一个过渡期,some_field
包括加密和未加密的值,所以我想查询加密和未加密的数据,同时保持其他条件。ransack现在不支持加密属性,所以这就是为什么我不能使用ransack中提供的*_in
匹配器。:'(
或者.如果我能在rails控制器中获得ransack生成的sql查询就好了--那么我就可以附加上面的查询了!
1条答案
按热度按时间jaxagkaj1#
要根据从Ransack获得的结果执行额外的查询,您可以提取Ransack生成的SQL,然后“手动”添加您的自定义查询条件:
字符串