2011-11-15 9 views
1

私のアートワークのオンラインショーケース/ストアを構築しようとしていますが、少し問題があります。私は友人からのアドバイスの後、レールを使うことに決めました。難易度:レールを使用してコントローラを把握する

私の1つの質問はコントローラに関するものです。すべてのページにコントローラが必要ですか?

今のところ、私は自分のHTMLにHome、Contact、Products、About Usのページを持つ予定です。これで4つのコントローラが必要になりますか?

事前にご意見やご感想がありましたら教えてください。

答えて

4

いいえ、この場合は、PagesControllerにさまざまな操作(ホーム、連絡先、私たちについて)を設定することができます。

これはむしろ、少なくともインデックスとショーアクションを備えた別のコントローラのようです。あなたの静的ページの場合

、あなたはこのように、ページの接頭辞なしできれいなURLの名前のルートを作ることができます。

match 'about-us' => 'pages#about_us', :as => :about_us 

を次に、あなたの意見でabout_us_pathabout_us_url

+0

これは公正だと思われます。しかし、静的なページのそれぞれに、機能を備えた製品のサイドバーなどの動的な機能を含めるとどうでしょうか? MVCはどのように機能しますか? – TopChef

+0

実際には実装上何も変更されません。あなたのモデルには動的なコードがあり、コントローラにフィードして部分的に表示します。 – Spyros

+0

@TopChefあなたは部分的にあなたのビューにそれを置くでしょうし、あなたが持っている変数をコントローラに入れる必要があります。どのように行うかに応じて、製品コントローラまたはアプリケーションコントローラのいずれかになります。 MHさんのレールチュートリアルをチェックしましたか?それを1〜2時間働かせれば、このMVCのことをすべて理解できるはずです。 –

5

あなたのコントローラを使用することができます局所的にである必要があり、ベースではなく、ページベースである必要があります。 @topekが述べたように、静的ページはページコントローラに入ることができます。 Productクラスの管理を扱うページは、Productsコントローラに入ることができます。

本当に、これはRailsの質問ではありません。これはMVCの質問です。

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

+0

私は質問にタグを付けました – WattsInABox

1

理想的には、コントローラは、Webアプリケーション(REST設計)内のリソースを表します。製品は間違いなく新しいもの、編集のような行動を持っているそれ自身のコントローラです。

ここで、自宅、連絡先、私たちについて処理するコントローラを1つ作成することができますが、私はそれに反対します。私は個人的にはそれぞれ別々のコントローラーを使用することになります。

私はできるだけ孤立したものを用意しています。自分のコードを拡張用にもっとオープンにして、変更用にクローズするようにします(オープン/クローズ設計の原則)。

-1

RESTful RailsスタイルのMVCでのコントローラの役割について学びます。 RESTはすべてに適用されるわけではありませんが、コントローラが何をする予定があるのか​​(少なくともRailsでは何か)を知ることができます。