Ransack和列别名

时间:2017-01-24 16:57:28

标签: activerecord ransack

在我们的控制器逻辑中,我们必须为特殊的对象类创建一些列别名(这是许多对象的汇编): enter image description here

问题是,在尝试搜集时,ransack将忽略别名并尝试转到原始table.column_name。搜索后的SQL:

  
    

" SELECT CONCAT_WS('     ',users.first_name,users.middle_name,users.last_name)AS guided_by ,     COUNT(NULLIF(is_complete = false,true))为complete_count,     COUNT(staff_assessments.id)作为employee_count,     staff_assessment_groups.name作为名称,     MIN(staff_assessments.created_at)as created_at,     staff_assessment_groups.id为staff_assessment_group_id,     staff_assessment_groups.effective_date as effective_date,     staff_assessment_groups.effective_date as review_date,' N / A'如     store_names,true as is_complete,true as is_360_evaluation,     \" staff_assessments \" \" assigner_position_id \"从     \" staff_assessments \" INNER JOIN \"职位\" ON \" position \"。\" id \"     = \" staff_assessments \"。\" assigner_position_id \" AND \"职位\"。\" deleted_at \" IS NULL INNER JOIN \"员工\"上     \"员工\" \" ID为\" = \"职位\"。\" employee_id \"和     \"员工\" \" deleted_at \" IS NULL INNER JOIN \"用户\"上     \"用户\" \" ID为\" = \"员工\"。\" user_id \"和     \"用户\" \" deleted_at \" IS NULL INNER JOIN     \" staff_assessment_groups \" ON \" staff_assessment_groups \"。\" id \" =     \" staff_assessments \" \" staff_assessment_group_id \"内部联接     \" survey_types \" ON \" survey_types \"。\" id \" =     \" staff_assessments \" \" survey_type_id \"内部联接     \" survey_type_categories_types \" ON \" survey_types \"。\" id \" =     \" survey_type_categories_types \" \" survey_type_id \"哪里     \" staff_assessments \" \" position_id \" IN(12024,)AND     \" staff_assessments \" \" is_360_evaluation \" =' t'和     \" survey_type_categories_types \" \" survey_type_category_id \" = 3 AND     的 \" staff_assessments \" \" conducted_by \" IN(' Bart Simpson') GROUP BY     users.id,\" staff_assessments \"。\" assigner_position_id \",     staff_assessment_groups.id订购     staff_assessment_groups.effective_date DESC LIMIT 20 OFFSET 0"

  

(注意粗体的carry_by - 这是原始的搜索搜索,但它使用的是staff_assessments.name而不是上面的别名'名称'

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

(尝试将对象放到数组中,但我再也无法搜集它了)

0 个答案:

没有答案