* Ruby on Railsの基礎 [#w16c5195]
#contents


** 概要 [#h9d69081]


** MVCモデル [#keacb9b1]
MVCとは、次のようにモジュールに分離したプログラミングモデルのことである。

- Modelモジュール
-- データベースなどを用いてデータを扱う
-- つまり、データ構造を扱う
-- データの整合性やバリデーションを行い、データモデルを隠蔽する
- Viewモジュール
-- データを見れるようにする
-- Modelの内容を表示形式に変換する
-- ユーザがControllerにアクセスできるように、リンクやフォームなどを提供する
- Controllerモジュール
-- ロジックを制御する
-- Viewが必要とするデータをModelから持ってくる
-- Viewに入力されたデータでModelを書き換える


*** 動作の流れ [#i77ca79f]
ユーザは、最初に何らかの手段で(お気に入りとか)、Controllerにアクセスし、Controllerが返すViewから、次のControllerにアクセスし…という流れを繰り返して動作する。

ようするに、ControllerがViewを返し、そのViewを使ってControllerにアクセスする、の繰り返しである。


** Model [#a4c08c7b]
Ruby on Railsでは、データベース上でSQLを発行してテーブルを作れば、それでモデルの定義は完了する。

あとは、Ruby on RailsがO/Rマップしてくれるので、特に気にする必要はない。

クラスを用意するくらいで、中身について詳しく書く必要はあまりない。


** View [#q5afc8c8]


*** フォルダ位置とファイル名 [#ac752afc]
ビューは、views/[コントローラ名]/[アクション名].rhtmlとする必要がある。これにより、Controllerでいちいちビューを指定したりせずに済む。


*** RHTML [#m87aa34b]
Ruby on Railsでは、ビューを定義するために、RHTMLというHTML風テンプレート書式を用いる。

RHTMLでデータの挿入を指示すると、そのデータの定義に従って、適切な方法で表示や編集のためのHTMLが生成される。


** Controller [#nff35914]


*** アクションの定義 [#zad63952]
アクションの定義は、クラスのメソッドとして定義する。


*** アクションがすべきこと [#a9a3b2e5]
アクションでは、ビューが必要とするデータをモデルから引っ張ってきたり、逆に、ビューに入力されたデータでモデルを書き換える。


*** scaffold [#x47a2b2a]
Controller内のクラス定義部分に、次のようなことを書くと、Modelの操作画面が自動で生成される。

 scaffold :[Model名]

この時、new・edit・show・destroyというアクションが使用される模様。

よって、scaffoldより後の行でアクションを再定義してしまうと、scaffold標準機能が使えなくなる。逆に、わざと再定義することで、一部動作を変更したりできそうだ。


** 参考リンク [#n1782ffc]

- [[公式チュートリアル>http://www.rubyonrails.org/show/Tutorial]]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS