我有一个带有Globalize3名称转换的好模型,所以: good.name(:en)返回良好的名字。 good.name(:ru)返回rus好名字。 我需要按字母顺序对Good进行排序,依赖当前语言,所以(我认为是这样)我需要制作
index ... as :en_name
index ... as :ru_name
然后搜索(命令:“en_name asc”)例如。
我有:
good.translations
=> [#<Good::Translation id: 5, good_id: 3, locale: "**ru**", name: "**Аурелия** ", description: "\"Lorem ipsum dolor sit amet, consectetur adipisicin...", created_at: "2012-12-24 13:43:37", updated_at: "2012-12-24 13:43:37">,
#<Good::Translation id: 6, good_id: 3, locale: **"en"**, name: "**Aurelia**", description: "\"Lorem ipsum dolor sit amet, consectetur adipisicin...", created_at: "2012-12-24 13:43:37", updated_at: "2012-12-24 13:43:37">]
并且需要为每个商品做索引en_name和ru_name。 这样的事情:
indexes "translations(:name) where locale='en'", :as => :en_name, sortable: :insensitive
但它不起作用。怎么做?
答案 0 :(得分:0)
WHERE
子句不应该是字段或属性定义的一部分 - 因为它们位于基础SQL查询的SELECT
子句中。
但是,您可以在索引定义中轻松指定自己的WHERE
条件:
indexes translations.name
# other fields and attributes
where "translations.locale = 'en'"