0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】 Deviseでundefined local variable or method `resource_class'が出た時の対処

Last updated at Posted at 2021-06-11

undefined local variable or method `resource_class'が出た時の対処法

背景

  • deviseのストロングパラメーターに新たなパラメーターを追加して新規登録画面を実装しようとしていたところ上記のエラーが発生
  • ローカル変数またはメソッド`resource_class'が未定義のためエラーが発生している様子

該当箇所

application_controller
    before_action :configure_permitted_parameters
    
    protected
    
    def configure_permitted_parameters
        devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :phone_number, :postcode, :address])
    end

修正箇所

  • before_action :configure_permitted_parametersの後にif: :devise_controller?を追加することで無事修正完了
application_controller
before_action :configure_permitted_parameters, if: :devise_controller?
    
    protected
    
    def configure_permitted_parameters
        devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :phone_number, :postcode, :address])
    end

補足情報

devise_contoller?はdeviseを導入することで利用可能なヘルパーメソッドの一つで、「deviseに関連する画面で処理を行った時に」という意味合いがあり、これによってapplication_controllerと紐付けている。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?