2013-10-18 8 views
5

アプリをレール4にアップグレードしたところ、すべてうまくいきました。サインインして編集ページに行くことができます。また、ビューを更新しました。標準ビューを使用すると、ユーザーが更新されます。しかし、たとえば、フィールド:nameを追加すると、これはフォームでは更新されません。レールを使った工夫4ユーザーを更新しない

3.1.1を工夫使用しても宝石「protected_attributes」

私は工夫やDBに更新コマンドのいくつかの種類を実行する必要がありますか?

私はこの場所を検索して、多くの異なる解決策を見つけましたが、私のユーザーフィールドは更新されません。私はカスタムフィールドを追加していません。

+0

rails 4 strong parametersメソッドを使用してパラメータを追加してみましたか? – trh

+0

アプリケーションコントローラーで強力なパラメーターを設定しました。最後に試したことはありませんでしたが、protect_attributes gemを削除してサーバを再起動した後、それはうまくいったのです:) – w25x

答えて

8

追加のパラメータを許可する場合は、ApplicationControllerbefore filterを使用できます。これは、Rails 4がモデルからコントローラにパラメータのサニタイズを移動したためです。

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

    protected 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:sign_up) << :name << :surname << :username 
    devise_parameter_sanitizer.for(:account_update) << :name << :surname << :username 
    end 
end 

さらにhereを見つけることもできます。

+0

これは 'devise_parameter_sanitizer.for(:sign_up){| u | u.permit(:username、:email、:password、:password_confirmation)} ' – Un3qual

関連する問題