我已将我的用户名字段添加到我的User
模型中,但似乎设计在创建新用户记录时无法识别它。我填写了电子邮件、用户名和密码,但我收到了一个验证错误“用户名不能为空”,即使我的参数哈希清楚地有它。我不需要让人们使用他们的用户名登录,但我只需要他们在注册新帐户时进行设置。
我正在使用 rails 4,并且我已经实现了设计的 github 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: david@example.com
password: foobar12
password_confirmation: foobar12
有任何想法吗?