特定のアプリとは直接関係ないようです。では、彼らは一般的にどのような責任を負わなければならないのでしょうか? たとえば、アプリ MVC のどの部分を特定のレベルではなく、アプリケーション レベルに配置する必要があるか。また、特定のコードをヘルパーまたはビューに配置する必要があるかどうかをどのように判断するのでしょうか?
1 に答える
アプリケーションコントローラー
はApplicationController
通常、 を継承する基底クラスとして扱われるべきActionController::Base
です。技術的にはルーティングされたアクションを に向けることができますがApplicationController
、それは悪い形です。これは、アプリケーションと Rails のコードの間のエントリ ポイントとして扱われるべきです。
サブクラスで使用できるメソッドを作成できる、カスタマイズの共通レイヤーを提供します。これらのユーティリティ メソッドは、通常、HTTP 要求のコンテキスト (セッション データなど) に直接依存するものに制限する必要があります。良い例は、current_user
Clearance がモジュールを介して ApplicationController に追加するメソッドです。
ApplicationController
これらのメソッドを使用できる RESTful コントローラーを追加するには、 をサブクラス化します。
rescue_from
また、500エラーページに直接リダイレクトするのではなく、エラーを適切に処理するのに便利な場所であることがわかりました.
ビュー/アプリケーション
私は通常、ナビゲーションやフラッシュ マークアップなどの共有パーシャルを配置するのに適した場所であることに気付きました。
ヘルパー
ヘルパーを使用することはめったになく、代わりにプレゼンターを使用することを好みます。ただし、ビュー コンテキストを必要とするアプリを介した共通のロジックがある場合は、アプリケーションのヘルパーがそれを格納する場所になります。ビュー/アプリケーションの共有パーシャルで使用されるヘルパーは、通常、ここにかなりうまく適合します。