* 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]]