LoginSignup
0
0

More than 1 year has passed since last update.

[Rails]MVCの責務範囲を サクッと説明

Last updated at Posted at 2022-08-28

Model

  • controllerの情報は参照しない

    • よくあるのは、controllerで定義したcurrent_userを参照してしまっていること。
  • viewに依存するロジックは記述しない

    • DecoratorやHelperで記述する

Controller

  • リクエストを受け取り、何らかの処理を行い、レスポンスを返すだけ
  • インスタンス変数の代入はアクションメソッド(indexやnewなど)直下で行う
    • before_actionやprivateメソッド内で代入すると可読性が下がってしまう

View

  • 複雑なロジックが含まれると可読性が落ちるので、DecoratorやHelper、Modelでの記述を検討する

おまけ

Decorator

  • Modelに依存する表示用のロジックを追加するモジュール
  • モデル名Decoratorという命名規則に従う

Helper

  • Modelに依存しない表示用のロジックを記述する
  • ただし、複数のモデルに依存する表示用のロジックを記述することもある
  • 注意点
    • Helperに定義したメソッドはネームスペースが無く、グローバルメソッドとして全てのViewから参照される
    • インスタンス変数を参照しない。必要なデータは引数で受け取る。
0
0
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
0