升级后 Ransack 关联搜索中断 rails

Ransack association search breaking after upgrading rails

我有一个模型 Student,它与另一个模型 Group 有 habtm 关系。以下代码:

Student.ransack(groups_id_eq: 22839).result

产生以下 SQL:

SELECT "students".* FROM "students" 
LEFT OUTER JOIN "groups_students" ON "groups_students"."student_id" = "students"."id" 
LEFT OUTER JOIN "groups" ON "groups"."id" = "groups_students"."group_id" 
WHERE "groups"."id" = NULL

注意它正在将 22839 转换为 NULL

这在升级到 rails 5 之前有效。

我有另一个模型,User,与组具有相同的 habtm 关系。当我尝试 Student.ransack(groups_id_eq: 22839).result 时,它会工作并生成所需的 SQL。两种型号的区别在于 Student 有一个 uuid id,而 User

编辑:这确实是一个错误,我已经提交了 issue with a more comprehensive gist

我已经通过猴子修补 ActiveRecord AliasTracker 解决了这个问题。

查看我的 gh issue 以获得完整的解释。