Я разрабатываю веб-страницу в rails 3 с разработкой аутентификации и интернационализации с помощью i18n gem.
У меня возникли некоторые проблемы при смешивании всего.Первое, что у меня есть, это мой макет приложения, в котором я отрисовываю частичный заголовок.В этом заголовке у меня есть две ссылки, чтобы перевести мою страницу таким образом (я использую Haml для просмотров)
= link_to image_tag('spanish.png', :height => "30px", :width => "30px", :class => "flag", :alt => "Español")
= link_to image_tag('english.png', :height => "30px", :width => "30px", :class => "flag", :alt => "English")
В моем application_controller у меня есть это
before_filter :set_locale
def set_locale
I18n.locale = request.compatible_language_from LANGUAGE_CODES
end
compatibility_language_from - действиеиз http_accept_language gem и LANGUAGE_CODES является константой с доступными языковыми кодами. Это работает отлично.В зависимости от заголовка моего браузера HTTP_ACCEPT_LANGUAGE корневая страница переводится на английский или испанский языки.
Теперь у меня в файле route.rb следующий код
#Authentication routes definitions
devise_for :users
#Choosing custom paths for user sign_in
devise_scope :user do
get "/", :to => "devise/sessions#new"
end
root :to => "welcome#index"
Выполнение этого "get" / "в рамках разработки я получаю http://localhost:3000 с макетом приложения и его заголовком, а также разрабатываю материал без необходимости просматривать пользователей / sign_in и т. д.
Я добавил это в тег link_to
, :action => "update_locale"
, поэтому, когда я нажимаю «Испанский или английский», запускается действие «update_locale» для обновления локали, но я получаю эту ошибку:
ActionController:: RoutingError в Devise / сеансах # new
Отображение /Users/alvaro/webApps/myFirstApp/app/views/shared/_header.html.haml, где поднялась строка № 15:
Нет совпадений с маршрутами {: controller => "devise / session",: action => "update_locale"}
Кто-нибудь знает, как это исправить? Может быть, что-то не так с маршрутизацией route.rb?Мой мозг кипит !!
Большое спасибо