У меня есть двуязычный сайт с хорошими URL для SEO. Использование Ruby on Rails 2.3.10.
routes.rb
фрагмент:
map.connect 'order-jira-hosting/:option.html',
:controller => 'order', :action => 'index', :locale => 'en'
map.connect 'order-jira-with-greenhopper-hosting/:option.html',
:controller => 'order', :action => 'index', :locale => 'en', :greenhopper => true
map.connect 'zamow-hosting-jira/:option.html',
:controller => 'order', :action => 'index', :locale => 'pl'
map.connect 'zamow-hosting-jira-z-greenhopper/:option.html',
:controller => 'order', :action => 'index', :locale => 'pl', :greenhopper => true
Как видите, :locale
и :greenhopper
"скрыты" в URL.
Существует переключатель, позволяющий изменить язык текущей страницы. Смотрите мой views/layouts/default.erb
:
<%= link_to image_tag('icons/polish.png', :alt => 'polski'), { :locale => 'pl'}, :class => 'a' %>
<%= link_to image_tag('icons/english.png', :alt => 'English'), { :locale => 'en'}, :class => 'a' %>
Я просто не указываю контроллер и действие, поэтому я перенаправлен на текущий контроллер и действие с другой локалью. К сожалению, параметр: greenhopper теряется.
- Я нахожусь на
/order-jira-with-greenhopper-hosting/11.html
(:option => 11, :locale => 'en', :greenhopper => true
) * * тысяча двадцать-одна
- Сгенерированные ссылки для переключения языков:
/order-jira-hosting/11.html
и /zamow-hosting-jira/11.html
(:option => 11, :locale => 'pl' and 'en', :greenhopper => false)
...
- ... Но они должны быть
/order-jira-with-greenhopper-hosting/11.html
и /zamow-hosting-jira-z-greenhopper/11.html
(:option => 11, :locale => 'pl' and 'en', :greenhopper => true)
Как использовать метод link_to, чтобы все параметры, передаваемые в контроллер, сохранялись? Спасибо за вашу помощь.