私はRuby on RailsとMVCスタイル全体のやり方に不慣れです。この質問は技術的なものではなく、概念的なものです。myFunction
ボタンを押してビューからユーザーに実行させたい機能があるとします。この機能は、モデルまたはコントローラーで使用する必要がありますか?
3 に答える
関数が特定のモデルに明確に関連している場合(「注文」、「ユーザーの認証」など)、適切なモデルに配置し、少量のコントローラーコードを追加して適切なモデルを作成/取得し、メソッドを呼び出します。
明らかにモデルの1つに属していない場合は、そのモデル用に別のクラスまたはモジュールを作成し、再度少量のコントローラーコードを追加することをお勧めします。
「スキニーコントローラーとファットモデル」に対してグーグルを実行します。これは、Railsプロジェクトで一般的に好まれるアプローチです。たとえば、Jamis Buckからのこの(古いがまだ有用な)投稿、またはこのより最近の投稿を参照してください。
コントローラーには、要求パラメーターと応答/リダイレクトである入力と出力があることが期待されます。したがって、ユーザーがボタンをクリックmyFunction
して画像が表示される場合は、myFunction
ビューヘルパー内への呼び出しとmyFunction
モデル内の関数を配置します。したがって、ビューもコードからクリーンになり、SkinnyコントローラーとFatモデルが登場します
モデルを使用していくつかのビジネスロジックを実行するコントローラーのメソッドに移動する必要があります(永続化に接続する必要はありません)。おそらく、RESTful アプリとルーティングについても読む必要があります (それに関するガイドはたくさんあります)。