2016-07-19 2 views
1

私は光沢のある新しいRails 5アプリを開発しました。私はDeviseユーザーモデルにユーザー名を追加しようとするまで、すべてがうまいです。私は時代遅れ与えられ、任意の結果をGoogleの素晴らしい場所を検索しましたDeviseパラメータSanitizer "For"メソッドが見つかりませんでした。5

undefined method `for' for #<Devise::ParameterSanitizer:0x007fa0dc31c1b0> Did you mean? fork 

4つのエラーと解決策を、レール、:私はそれを実行し、私はこのエラーで迎えたlocalhost:3000/users/sign_up、に行ってまで、すべてが働いていましたStack Overflow自体を検索する場合と同じです。私は実用的な解決策を見つけるために私の心を得ることができません。私は非常に助けていただければ幸いです。ここで私はこのために準備する方法である。

  1. 移行を作成します:rails generate migration add_username_to_users username:string:uniq
  2. データベースrake db:migrate
  3. devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(..) }
  4. が考案ビュー
  5. にユーザ名パラメータを追加したアプリケーションコントローラに強いパラメータを追加します。移行サーバーを再起動する

私が見逃したことはありますか? dが間違っている?

+0

を試してみました) '.forメソッドは廃止されましたが、今はdeviseから許可されています。4.1+ –

答えて

2

.FOR方法を工夫から、廃止されました4.1以降.permit方法は

提供されていますがそれは動作するはず .permit.を試してみてください。

devise_parameter_sanitizer.permit(:my_action) { |u| u.permit(..) } 

これはあなたを助けることを願っています:)

+0

ありがとう、これは完全に動作します! –

0

問題がよく@Shadowで述べたが、この構文は私のために働いた:あなたは.permitメソッド `devise_parameter_sanitizer.permitを(

def configure_permitted_parameters 
    devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :email]) 
    devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, :phone, :email, bank_attributes: 
    [:bank_name, :bank_account]]) 
end 
関連する問題