rails 3 с использованием устройства для аутентификации

Я использую Devise в своем приложении Rails 3 для аутентификации.

Я требую использовать для входа имя пользователя, а не электронную почту.

Поэтому я изменил файл config/initializers/devise.rb, как показано ниже

config.authentication_keys = [ : имя пользователя ]

Изменена страница registraion, чтобы принимать имя пользователя, адрес электронной почты и пароль во время регистрации. Также изменены представления входа и регистрации, чтобы включить имя пользователя.


Моя проблема:

Когда я нажимаю на Forgot password, появляется поле для ввода email. После того, как я ввожу «электронную почту» и нажимаю кнопку «Отправить мне инструкции по сбросу пароля».

Выдает ошибку Username can't be blank.

Где я могу внести изменения, чтобы исправить это?


person DV Dasari    schedule 30.12.2010    source источник


Ответы (1)


Я бы предположил, что authentication_keys устанавливает :username как обязательное поле.

Попробуйте отредактировать app/views/devise/passwords/new.html.erb и заменить:

<%= f.label :email %>
<br />
<%= f.text_field :email %>

с участием:

<%= f.label :username %>
<br />
<%= f.text_field :username %>
person clemensp    schedule 30.12.2010
comment
Правильно, devise включает представления по умолчанию для своих функций, но вам придется переопределить все те, которые вы хотите использовать, если вы измените основное поле входа в систему. - person Brian Deterling; 31.12.2010