Проблемы при использовании бета-версии фильтра маршрутизации 0.4.0.pre

Я использую версию фильтра маршрутизации 0.4.0.pre для Rails 4 по предложению человека, который разместил эту версию в RubyGems. Вы не найдете эту версию при поиске на веб-сайте RubyGems. Я узнал об этом, когда опубликовал комментарий к существующей проблеме в GitHub.

https://rubygems.org/gems/routing-filter/versions/0.4.0.pre

Я нахожу различия между этой версией и той, которую я сейчас использую в своих приложениях Rails 3. Я считаю, что это последняя версия 0.3.1. С помощью этого драгоценного камня языковой стандарт включен в мои URL-адреса и в отладочную информацию внизу при запуске localhost, как ожидалось. Однако, когда я использую версию 0.4.0.pre, языковые стандарты не отображаются в URL-адресах или в отладочной информации. У меня есть ссылки вверху раздела заголовка, где человек может выбрать свой языковой стандарт. При щелчке по одной из этих ссылок в URL-адресе появляется языковой стандарт. Когда я нажимаю другую ссылку (текст или значок), языковой стандарт исчезает, но языковой стандарт устанавливается в файле cookie (предполагается, что нет, но пока он останется). Переводы верны для выбранного языкового стандарта, но если я не сделаю что-то особенное в своих ссылках, чтобы человек знал, на какой из них он щелкнул, никто не узнает языковой стандарт. Это проблема, потому что сейчас я настраиваю файлы локали, и все они будут на английском языке, пока я не смогу получить переводы для других языков.

Вот код, который у меня есть в обоих приложениях в application_controller.rb, где я устанавливаю языковой стандарт и создаю файл cookie.

before_filter :set_locale

private
  def set_locale
    I18n.locale = (params[:locale] if params[:locale].present?) || cookies[:locale] || 'en'
    cookies[:locale] = I18n.locale if cookies[:locale] != I18n.locale.to_s
  end

Вот код, который у меня есть в config / routes.rb.

filter :locale

Вот код моей строки локали в моем заголовке в моем приложении Rails 4. У меня есть похожий код в моем приложении Rails 3.2.13.

<%= link_to_unless_current "English", locale: "en" %> <%= link_to_unless_current "Español", locale: "es" %> <%= link_to_unless_current "Français", locale: "fr" %>

Я не уверен, связана ли проблема с гемом 0.4.0.pre или мне нужно внести дополнительные изменения i18n в мое приложение Rails 4. Читая документацию по i18n, я не вижу ничего лишнего, что мне нужно сделать. Нет специальной документации по 0.4.0.pre, поэтому я предполагаю, что смогу делать то, что делаю, с версией routing-filter для Rails 3.

Я разместил это в разделе проблем для гема на GitHub. Я провел поиск в Интернете об использовании этой версии фильтра маршрутизации, но не могу их найти. Думаю, это было опубликовано в прошлом месяце.

Любая помощь будет оценена по достоинству.


person Pamela Cook - LightBe Corp    schedule 23.08.2013    source источник


Ответы (1)


Похоже, проблема была устранена, проблема с языковым стандартом, не отображаемым в URL-адресе. Однако в итоге я использовал собственный код Rails для маршрутизации, так как у меня было два рабочих приложения, которые я уже переписал в Rails 4.

person Pamela Cook - LightBe Corp    schedule 08.11.2013