Я добавил свое поле имени пользователя в мою модель User
, но, похоже, его разработка не распознается при создании новой записи пользователя. Я заполняю адрес электронной почты, имя пользователя и пароль, но я получаю ошибку проверки: «Имя пользователя не может быть пустым», хотя у моего параметра hash явно есть это. Мне не нужно, чтобы люди входили в систему со своим именем пользователя, но мне просто нужно, чтобы они установили его при регистрации для новой учетной записи.Devise: Я добавил поле имени пользователя, но оно не работает
Я использую рельсы 4, и я применил сильные параметры, упомянутые в github devitation для README.
Вот мой user.rb
файл
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
before_save { |user| user.username = user.username.downcase }
validates_presence_of :username
validates_uniqueness_of :username, case_sensitive: false
Вот мой application_controller.rb
файл
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:email, :username, :password, :password) }
end
end
Я также добавил мой registrations/new.html.erb
файл:
<div><%= f.label :username %>
<%= f.text_field :username %></div>
Вот что мой PARAMS хеш, когда Я представляю новую запись пользователя:
user: !ruby/hash:ActionController::Parameters
username: David
email: [email protected]
password: foobar12
password_confirmation: foobar12
Любые идеи?
Маленькая ремарка 'user.username = user.username.downcase' можно переписать в' 'user.username.downcase – hawk
Nice! Спасибо за совет. – DavidVII