Activerecord 搜索和列别名

Activerecord 搜索和列别名,activerecord,ransack,Activerecord,Ransack,在控制器逻辑中,我们必须为一个特殊的对象类(它是许多对象的汇编)创建几个列别名: 问题是,在尝试搜索时,搜索将忽略别名,并尝试转到原始的table.column\u name。搜查后的SQL: “选择CONCAT_WS(' ,users.first_name,users.middle_name,users.last_name)由, 计数(NULLIF(is_complete=false,true))作为完整计数, 计数(staff_assessment.id)为员工计数, 员工(评估)(组别)

在控制器逻辑中,我们必须为一个特殊的对象类(它是许多对象的汇编)创建几个列别名:

问题是,在尝试搜索时,搜索将忽略别名,并尝试转到原始的table.column\u name。搜查后的SQL:

“选择CONCAT_WS(' ,users.first_name,users.middle_name,users.last_name)由, 计数(NULLIF(is_complete=false,true))作为完整计数, 计数(staff_assessment.id)为员工计数, 员工(评估)(组别)姓名作为姓名,, MIN(员工评估。创建时间)作为创建时间, 员工评估组id作为员工评估组id, 员工评估组。生效日期作为生效日期, 员工评估组。生效日期为审核日期,“不适用”为 存储名称,按原样完整,按原样评估, \“员工评估\”“分配人\职位\ id \”来自 \“职位”id上的“员工评估”“内部连接”“职位” =“员工评估”\“分配人职位id”和“职位id”\“删除位置”在“”上为空 \“员工\”“id \”“职位\”“员工\”“id \”和 \“employees\”在\“处删除\”是空的内部连接\“users\”在 \“用户\”“id \”“员工\”“用户\”“id \”和 \“用户\”“删除\”处的\“为空内部联接” \“员工评估组”上的“员工评估组”= \“员工评估\”“员工评估\”“团队id \”内部连接 \“调查类型”上的“调查类型”= \“员工评估\”“调查\类型\ id \”内部连接 \“调查类型”“类别”“类型”在“调查类型”“id”上= \“调查类型\类别\类型\”“调查类型\ id \”其中 \(12024)中的“员工评估”和“职位id”;以及 \“员工评估”是“360度评估”='t'和 \“调查类型\类别\类型\”“调查类型\类别\ id \”=3和 “员工评估”由('Bart Simpson')中的“进行”GROUP by users.id、\“员工评估\”“分配人\职位\身份\”, 员工_评估_组。身份证订购人 员工评估组。生效日期描述限制20抵销0“

(注意粗体显示的是——这是最初的搜索,但它使用staff_.name而不是上面的别名“name”)

我的问题是,有没有办法告诉ransack使用别名字段?或者有没有办法简单地将记录创建为活动关系

(尝试将对象放入数组,但我无法再对其进行搜索)

在此处找到答案在此处找到答案