这个问题类似于
如何从同一个连接表中搜索不同的条件?,但我没有从this.z得到解决方案
我的代码
has_one :insurance_type_link, as: :enumerable, class_name: "Utility::UserDefinedEnumLink",
conditions: {user_defined_enum_links: {user_defined_enum_id: Utility::UserDefinedEnum.insurance_types.map(&:id)}}
has_one :payment_duration_link, as: :enumerable, class_name: "Utility::UserDefinedEnumLink",
conditions: {user_defined_enum_links: {user_defined_enum_id: Utility::UserDefinedEnum.payment_durations.map(&:id)}}
我的 define_index 有这个
indexes insurance_type_link.user_defined_enum.enum_value, as: :it, sortable: :insensitive
indexes payment_duration_link.user_defined_enum.enum_value, as: :pd, sortable: :insensitive
在 development.sphinx.conf 内部生成的 sql 查询是
AS `it_sort`, LOWER(IFNULL(`user_defined_enums_user_defined_enum_links`.`enum_value`, ''))
AS `pd_sort`, IFNULL(`user_defined_enums`.`enum_value`, '')
所以它对这两个关系生成不同的查询,结果只有第一个查询给了我正确的搜索结果。
如何解决这个问题?
提前致谢。