コントローラー アクション間でのコードの再利用について質問があります。かなり標準的な状況だと思うので、Rails のベスト プラクティスは何かに興味があります。
によって提供されるネストされたリソースをfilms
持つ、対応するを持つリソースがあるとします。ネストされたリソースは、アクションとアクションを使用して単独でレンダリングできます。ただし、対応するフィルム ページに埋め込まれたコメントをレンダリングすることも可能である必要があります。FilmsController
comments
CommentsController
index
show
CommentsController
ここで、内からコードを再利用する最善の方法は何FilmsController.show
ですか?
CommentsController.index
1)文字列にレンダリングしてから、変数でフィルムビューに渡すように強制しますか?
または 2)CommentsController.index
そこからデータベース クエリを実行して、フィルム ビューで一種の「部分」として直接呼び出しますか?
または 3)CommentsController
データベース処理を担当する別のメソッドを作成し、 と の両方から呼び出しCommentsController.index
、FilmsController.show
対応するビューを両方の場所でも使用しますか?
私には、オプション 1) と 2) は少し面倒に思えますが、3) はモジュール化されておらず、コードの繰り返しが必要です。これを達成するためのより良い方法はありますか?
どうもありがとう!