我正在使用一个较旧的(rails 4)代码库,我的任务是更新mysql 2gem以支持最新的db版本。使用我们当前版本的gem和代码,一切正常,但是升级时我遇到了与保留字“groups”的命名冲突。
除了一个查询外,我已经设法在所有查询中使用反引号来逃避它。我们调用<modelname>.send(name, args)
,当name
是:groups
时,我们得到一个错误。发送返回活动记录关系。relation.to_sql向我展示了它都被转义了,但有一件事,最后的groups
似乎被附加到了一个select * 的末尾,来自一个select的并集:
SELECT `groups`.*
FROM
(
(SELECT `groups`.*
FROM `groups`
WHERE ...)
UNION ALL
(SELECT `groups`.*
FROM `groups`
WHERE ...)
) groups
我一直在试图找到一种方法来逃避最后一组引用。我能想到的唯一方法就是将其转换为Arel sql并以这种方式运行查询。是否有某种类型的“名称”可以传递给ActiveRecord关系,以便它给我一个转义的groups
?
非常感谢你的帮助!
1条答案
按热度按时间zmeyuzjn1#
我选择开箱即用的解决方案: