Настройка локали для каждого пользователя при использовании devise и rails 3 - PullRequest
0 голосов
/ 27 ноября 2010

Я только что через одно из моих приложений преобразовал аутентификацию из authlogic в devise. В общем, это было удивительно просто сделать, но есть одна проблема, которую я не могу найти легко исправить.

В приложении пользователь может выбрать свою локаль. Затем, когда они входят в систему, они просматривают приложение на выбранном ими языке. Ранее я делал это, просто устанавливая языковой стандарт в методе создания моего контроллера UserSessions.

С Devise все контроллеры настраиваются автоматически, и это здорово. Я знаю, что мог бы создать собственный Контроллер, который расширяет DeviseController и делать это следующим образом, но, насколько я понимаю, это означает, что мне также нужно будет создать все представления, чтобы идти с ним, что кажется немного чрезмерным, когда я просто нужно запустить одну дополнительную строку кода.

Есть ли более простой способ указать какой-либо код для успешной аутентификации устройства?

Ответы [ 2 ]

2 голосов
/ 27 ноября 2010

Я нашел решение, которое искал здесь

Поскольку я просто хотел установить языковой стандарт для пользователя, когда он вошел в систему, все, что мне было нужно, это добавить следующий метод вмой ApplicationController

def after_sign_in_path_for(resource_or_scope)

  if resource_or_scope.is_a?(User) && resource_or_scope.locale !=  I18n.locale
    I18n.locale = resource_or_scope.locale
  end

  super
end
0 голосов
/ 27 ноября 2010

Вы казнили rails generate devise:views?Это выведет файлы представлений Devise для вас, а затем вы сможете переместить их в местоположение, которое соответствует вашему новому расширенному имени контроллера Devise.

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

Все, что вам нужно сделать, это предоставить файл «devise. [: locale] .yml» в корневой папке «locales» вашего приложения rails для каждого языкового перевода, который вы хотите поддерживать..

В вики Devise есть несколько переводов локалей, которые были предоставлены, чтобы сэкономить вам немного работы:

https://github.com/plataformatec/devise/wiki/I18n

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...