2013-04-13 2 views
0

У меня хорошая модель с преобразованием имени Globalize3, поэтому: good.name (: en) return en good name. хорошо.имя (: ru) возврат rus хорошо name. мне нужно сортировать Хорошо в алфавитном порядке, depence текущего языка, поэтому (я так думаю) мне нужно сделатьМышление Sphinx: атрибуты перевода индекса

index ... as :en_name 
index ... as :ru_name 

А потом искать (порядок: «en_name по возрастанию»), например.

у меня есть:

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

WHERE статьи не должны быть частью определения полей или атрибутов - поскольку они находятся в предложении SELECT базового SQL-запроса.

Вы можете, однако, указать собственные WHERE условия достаточно легко в вашем определении индекса:

indexes translations.name 
# other fields and attributes 

where "translations.locale = 'en'" 
Смежные вопросы