Mysql Ransack:如何合并子查询?
我需要根据多态关联中的key+值进行筛选。在本例中,一个Mysql Ransack:如何合并子查询?,mysql,ruby-on-rails,ransack,Mysql,Ruby On Rails,Ransack,我需要根据多态关联中的key+值进行筛选。在本例中,一个事件可以有许多自定义字段值,我需要通过自定义字段值.custom\u field\u id和自定义字段值过滤事件 我尝试创建类似以下SQL查询的搜索: SELECT id FROM incidents WHERE id IN ( SELECT customfieldable_id from custom_fields_values WHERE (custom_fields_values.custom_field_id = 1091
事件
可以有许多自定义字段值
,我需要通过自定义字段值.custom\u field\u id
和自定义字段值
过滤事件
我尝试创建类似以下SQL查询的搜索:
SELECT id FROM incidents
WHERE id IN (
SELECT customfieldable_id from custom_fields_values
WHERE (custom_fields_values.custom_field_id = 1091 AND (custom_fields_values.value >= '2015-06-29 10:00:00') AND (custom_fields_values.value <= '2015-07-03 09:59:59'))
)
AND id IN (
SELECT customfieldable_id from custom_fields_values
WHERE (custom_fields_values.custom_field_id = 1099 AND (custom_fields_values.value = 'bbb'))
);
我想搜掠查询应该是这样的:
Incident.ransack(:m=>"and", :g=>{
"0"=>{"id_in"=>{
"0"=>{:m=>"and", :g=>{
"0"=>{"custom_fields_values_custom_field_id_is"=>1091},
"1"=>{"custom_fields_values_value_gte_any"=>["2015-06-29 00:00:00"]},
"2"=>{"custom_fields_values_value_lte_any"=>["2015-07-02 23:59:59"]}
}}}},
"1"=>{"id_in"=>{
"0"=>{:m=>"and", :g=>{
"0"=>{"custom_fields_values_custom_field_id_is"=>1099},
"1"=>{"custom_fields_values_value_is_any"=>["bbb"]}
}}}}
})
有没有办法在Ransack中包含嵌套查询?我试过了,但得到了#的命名错误:未定义的方法“base”
还有其他方法吗?关于同一问题,这里有另一个问题:我在ransack github中打开了一个问题:关于同一问题,这里有另一个问题:我在ransack github中打开了一个问题:
Incident.ransack(:m=>"and", :g=>{
"0"=>{"id_in"=>{
"0"=>{:m=>"and", :g=>{
"0"=>{"custom_fields_values_custom_field_id_is"=>1091},
"1"=>{"custom_fields_values_value_gte_any"=>["2015-06-29 00:00:00"]},
"2"=>{"custom_fields_values_value_lte_any"=>["2015-07-02 23:59:59"]}
}}}},
"1"=>{"id_in"=>{
"0"=>{:m=>"and", :g=>{
"0"=>{"custom_fields_values_custom_field_id_is"=>1099},
"1"=>{"custom_fields_values_value_is_any"=>["bbb"]}
}}}}
})