У меня есть следующая строка в представлении:
<%= f.select(:province_id, options_from_collection_for_select(Province.find(:all, :conditions => { :country_id => @property.country_id }, :order => "provinces.name ASC"), :id, :name) %>
В модели провинции у меня есть следующее:
def name
I18n.t(super)
end
Проблема в том, что поле: name переведено (через модель провинции) и что упорядочение выполняется с помощью activerecord для английского имени. Неанглийский набор результатов может быть неправильно отсортирован таким образом. У нас есть провинция в Бельгии, которая называется Oost-Vlaanderen. По-английски это «Восточная Фландрия». Не подходит для сортировки:)
Мне нужно что-то подобное, но оно не работает:
<%= f.select(:province_id, options_from_collection_for_select(Province.find(:all, :conditions => { :country_id => @property.country_id }, :order => "provinces.I18n.t(name) ASC"), :id, :name) %>
Каков наилучший подход для решения этой проблемы?
Как вы могли заметить, мои знания в области кодирования очень ограничены, извините за это.