0

モデルにユーザー名フィールドを追加しましたUserが、新しいユーザー レコードを作成するときにデバイスがそれを認識していないようです。電子メール、ユーザー名、およびパスワードを入力しましたが、params ハッシュに明確に含まれているにもかかわらず、「ユーザー名を空白にすることはできません」という検証エラーが表示されます。ユーザー名でログインする必要はありませんが、新しいアカウントに登録するときに設定するだけで済みます。

Rails 4を使用しており、deviseの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

何か案は?

4

1 に答える 1