5

Rails 4 で使用できるように、Devise 3 のリリース候補版を使用しています。Rails 3.2 では、Userそのフィールドを registration/edit.html.erb に追加するだけで、モデルにカスタム フィールドを追加できました。および registration/new.html.erb ファイル (適切な移行を実行した後)。次に、そのフィールドをattr_accessibleモデルのフィールドのリストに追加します。

しかし、Rails 4 ではattr_accessibleリストがなく、単純にビューにフィールドを追加することはできません。カスタム ユーザー フィールドを追加するにはどうすればよいですか?

4

4 に答える 4

3

追加のパラメーターを許可したい場合は、単純な before フィルターで行うことができます

アプリケーションコントローラー:

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

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) << :username
  end
end
于 2013-10-18T13:07:01.473 に答える
0

次のような新しい初期化子を作成する必要があることを行うには、 attr_accessible の代わりに devise の強力なパラメーターを有効にする必要があります。

DeviseController.class_eval do
  def resource_params
    unless params[resource_name].blank?
      params.require(resource_name).permit(:email, :password, :password_confirmation, :remember_me)
    end
  end
end

rails4 ブランチ (plataformatec/devise) から gem をクローンしたことを確認してください。モデルから attr_accessible を削除

于 2013-05-31T08:12:47.723 に答える