1
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 5 years have passed since last update.

RailsAdmin が、サーバ起動後にダッシュボードにアクセスしたタイミングでのみ、エラーを吐く件について

Posted at

現象

Rails のプロジェクトに、RailsAdmin を設定して、[Rails.root]/config/initializers/rails_admin.rb にいろいろと設定を加えて、rails s を起動して、routes で設定した rails_admin のダッシュボードを見に行くと、

スクリーンショット 2015-12-03 23.21.49.png

な画面が出て、リロードすると、

スクリーンショット 2015-12-03 23.22.28.png

な画面が出て、さらにリロードすると、ちゃんと正常にrails_adminのダッシュボードが表示される、という、謎な現象が起きて戸惑っておりました。

結論を先に言うと

[Rails.root]/config/initializers/rails_admin.rb にタイプミスがあるとこういう現象が起きますよ、と。

詳しく話すと

前者のエラー

devise を用いて、AdminUser モデルを使ってユーザ認証を行おうとしていたのですが、rails_admin上から変更できるものを絞ろうと include_fields で指定したところ

  • 誤:password_confrmation
  • 正:password_confirmation

という typo をしており、上記をきちんと直せば、最初のエラー画面が出なくなりました。

後者のエラー

同様ですね。

  • 誤:iclude_all_fields
  • 正:include_all_fields

こちらを直すと、rails s でサーバを起動した直後から、ダッシュボードの画面が表示されるようになりました。

typoがあるときとないときの rails_admin の挙動

本来(typo修正後)は、AdminUserの編集画面が下記のようになりました。

スクリーンショット 2015-12-03 23.23.22.png

これでは想定通りに email, password, password_confirmation, status だけを編集できるようになっています。

typo 修正前、複数回のエラー画面を経た上でアクセスする編集画面は、下記のような画面になっていました。

スクリーンショット 2015-12-03 23.23.40.png

include_fields を設定しない、取り急ぎ、テーブルにあるカラムを全て編集対象にする、という、rails_admin デフォルトの挙動となっています。

要は何がいいたいのかと言いますと

typo をするなとは一切述べるつもりはありません。
ただ、include_fields のような箇所を間違えるとただでさえ間違いに気づきにくく、かつ、エラーメッセージも初見ではかなり不親切です。
そして rails_admin は実装が結構複雑というか、コードが 9998行あるファイルとかあって、リファクタリングも厳しいので、ここらへん分かりやすく例外出してよ、というのも、厳しいでしょう(自分はちょっとそこの修正 pull request を送る元気はないです)。

とりあえず、このような地雷を踏んだ人間がいる、ということだけ、ここに記しておきます。

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