57

ruby 2.0.0p0 および Rails 4.0.0.beta1 とともに、devise の rails 4.0 ブランチを使用しています。

これは、私が正しい方法で行っているかどうか、または他にすべきことがあるかどうかを確認するような質問です。Rails 4.0 に移行する多くの人が同じ問題に直面していると思います (似たようなことをグーグル検索した後)。

次のリンクを読みました。

devise を使用してユーザー モデルを作成し、上記の要点を使用して次のコントローラーを作成しました (ルート ファイルに含めるようにしました)。私の追加のパラメータは、first_name と last_name です。

class Users::RegistrationsController < Devise::RegistrationsController
  def sign_up_params
    params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation)
  end
  def account_update_params
    params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :current_password)
  end
  private :sign_up_params
  private :account_update_params
end

他にすべきことはありますか?これが今後の最善の方法ですか (attr_accessor を削除してから)。私のフォームは正常に動作しているようです (新規と更新の両方)。要点は「resource_params」を使用すると言っていましたが、サーバーログに常に「許可されていないパラメーター」エラーが発生しました。

4

3 に答える 3

29

Rails 5 の場合、Devise 4 はこれを使用します。

class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :email, :password, :password_confirmation])
  end
end

参照

于 2016-06-06T09:57:29.253 に答える