4
1

More than 3 years have passed since last update.

rails_admin + cancancanで「undefined method `new' for nil:NilClass」というエラーが出る

Last updated at Posted at 2019-11-14

結論から

config/initializers/rails_admin.rbの設定を次の様に変更したら直りました。

config/initializers/rails_admin.rb
RailsAdmin.config do |config|

  ...

  # 変更前
  config.authorize_with :cancan

  # 変更後:
  config.authorize_with :cancancan

  ...

end

環境

項目 version
ruby 2.5.1
rails 5.2.3
rails_admin 2.0.0
cancancan 3.0.1

どうやってこの解法が分かったか

スクリーンショット 2019-11-14 午後9.42.08.png

こんな感じでエラーが出たのですが、この中の

klass = RailsAdmin::AUTHORIZATION_ADAPTERS[extension]

klassがnilになってるのが原因でした。

extensionの値を調べるとcancanが入っており、一方でRailsAdmin::AUTHORIZATION_ADAPTERSを調べると、cancanというキーはなく、cancancanというキーが入っているみたいでした。

そのため、cancanという設定に関係しそうな箇所を変更すれば直るかもしれないと思い試した所、解決しました。

所感

大抵の記事には

config/initializers/rails_admin.rb
RailsAdmin.config do |config|

  ...

  config.authorize_with :cancan

  ...

end

という様にcancanと書いてあるので、引っ掛かりやすそうですね。

4
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
4
1