LoginSignup
2
1

More than 5 years have passed since last update.

before_actionってコードの見通しが悪くなるような…

Last updated at Posted at 2015-05-14

なんでもかんでもbefore_actionに落とし込んでしまうのは良くないと思う。
before_actionの適切な使いどころは?ということでググってみたら…

before_action an anti-pattern?

Railsのコントローラーにおいて、なんでもかんでもbefore_actionでやるような設計はアンチパターンではないか、という話。

before_actionでメソッドの呼び出しを宣言的に記述するのと、アクションメソッド内でそれらのメソッドを単純に呼ぶのとで、それぞれのメリット・デメリットを挙げたうえで、「アクションの実行を回避させるようなフロー制御をbefore_actionで書くのはいいと思う。それ以外の、単にデータをロードするためだけのメソッドなどはアクションメソッド内に書こう。コードが少し長くなるけど、そのほうが読みやすくて理解もメンテナンスも簡単だ」とのことです。

あと、こちらでも、同じようなことが述べられているようだ。(追記:2016/05/12)

The biggest Rails code smell you should avoid to keep your app healthy(英語)
https://medium.com/planet-arkency/the-biggest-rails-code-smell-you-should-avoid-to-keep-your-app-healthy-a61fd75ab2d3#.ex0p5aib6

追記

セキュリティ的に欠かすことの出来ない処理(ログイン確認のようなもの)は before_action で設定しておくのもありだと思う。
オプトアウト方式で記述しておけば、将来新たにアクションを追加したとしても、その重要な処理を入れ忘れるということがなくなるので。

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