Counter: 1010, today: 1, yesterday: 0

本ページが気に食わない場合は削除願います>日向殿

ありがとうございます!
学びやすくなって嬉しいです。(日向)

随時わかりにくい箇所などをアップデートしたいので、皆様の意見を受け付けるためのコメント欄をつけたいのだけれどどうしたらいい?というかつけて>日向殿

作りました!コメント欄。
各章につけたほうがいいですか?
#comment
でコメント欄できます。

はじめに

どMでないならRailsを使え。

前提となる知識

ここでRailsでの開発を行ううえで必要となる基本的な考え方を示す。

MVC

http://ja.wikipedia.org/wiki/Model_View_Controller

DRY

http://ja.wikipedia.org/wiki/Don%27t_repeat_yourself

CoC

http://ja.wikipedia.org/wiki/%E8%A8%AD%E5%AE%9A%E3%82%88%E3%82%8A%E8%A6%8F%E7%B4%84

命名付与基準について
Railsでは開発者が一定の命名付与基準に従うことにより、一般に設定事項が必要となる様々な場面で、
その設定を省略することを可能としている。よって以下の命名付与基準に従って開発するべきである。
クラス名キャメルケース
メソッド名スネークケース
変数名スネークケース
テーブル名スネークケースで複数形
行を表す変数名テーブル名の単数形
ファイル名スネークケース

キャメルケースやスネークケースの説明はhttp://ja.wikipedia.org/wiki/キャメルケースへ。

インストール

rubyをインストールし、gemをインストールし、gemでrailsをインストールするのが定石。依存関係があすその他のパッケージもgemがインストールしてくれる。

Leopard以降?のMacならrubyもgemもインストール済み。gemをアップデートしてrailsをインストールすればいい。

rubyをインストール

http://www.ruby-lang.org/ja/

gemをインストール

http://rubyforge.org/projects/rubygems/

インストール済みのgemのアップデートは以下のコマンド実行

$ gem update --system

ちなみにgemってなに?・・・rpmとかaptみたいなもんだ。わかるよね?

railsをインストール

http://rubyonrails.org/

全体像を眺める。

全体像が判ったほうが理解が早い。これ常識。

プロジェクトを作る

$ rails プロジェクト名

指定したプロジェクト名のディレクトリができ、その下にたくさんのファイルやフォルダが生成される。
以降この指定したプロジェクト名のディレクトリ配下での作業を前提とする。
このこの指定したプロジェクト名のディレクトリを毎回説明するのが面倒なので、$(RAILS_ROOT)と書くことにする。

開発用サーバを起動する

$ cd $(RAILS_ROOT)
$ ruby script/server

rubyでできたWebサーバが起動する。デフォルトではhttp://0.0.0.0:3000/でアクセスできる。Webブラウザでアクセスして確認するべし。

足場(scaffold)を作る

Webアプリが本質的にWebというIFを使ってDBを操作するものであると考えると、DBのテーブル名(モデル名)とそのカラムの情報を与えてやれば、そのテーブルのCRUDを実行できるWeb超単純だが必要最低限の機能を実現したWebアプリを自動生成できるはず。それを実現するのがこのscaffold機能。

$ ruby script/generate scaffold モデル名の単数形 カラム名1:型名1 カラム名2:型名2 ・・・

指定できる型の名称を以下の表に示す。

型名概要
string文字列
boolean真偽値
もちろん、そんなに単純なパターンだけではなく、ControllerやModelを個別にスクラッチで書く方法も存在する。

DBを生成する

scaffoldはWebページを作るが、DBのスキーマは生成してくれない。それを生成するのが以下のコマンド。

$ rake db:migrate

ちなみにrakeってなに?・・・Makeみたいなもの。中身がrubyになっているのでやりたい放題できる。

Webブラウザで確認する

http://0.0.0.0:3000/モデル名の複数形
にアクセスすると、いろいろできるページにたどり着く。

いじりたおす

scaffoldで生成したファイルたちをいじって気が済むまで格好よくする。
いじるファイルは主にこのへん。配置されたディレクトリの名称からわかるように、MVCの各要素を実現している。

$(RAILS_ROOT)/app/controllers/*.rb
$(RAILS_ROOT)/app/models/*.rb
$(RAILS_ROOT)/app/views/*/*.html.erb
$(RAILS_ROOT)/public/stylesheets/scaffold.css

試す

上記の情報をもとに超シンプルタスク管理ツールと作ってみる。

$ rails Todolist
$ cd Todolist
$ ruby script/generate Task name:string compflag:boolean
$ rake db:migrate
$ ruby script/server

あとは同じマシンでhttp://0.0.0.0:3000/Tasks/にアクセスすればなにかできていることがわかる。

ひとつずつみてみる

Model

DBを

マイグレーション

Controller

MVCの定義が示すとおり、ユーザからの要求を受け取って、Modelからデータを取得し、適切なViewを選択して表示を要求する機能を表す。

$ ruby script/generate controller コントローラ名

View

ユーザに対し、スクリプトの記述に基づいてHTML生成を行う機能。
そのスクリプトは3種類あり、Webアプリ全体で共通的に表示する内容を記述する「レイアウト」と、Webアプリの機能毎に表示内容を記述する「テンプレート」と、レイアウトやテンプレートに埋め込んで使用する「部分テンプレート」が含まれる。


コメント




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-03-30 (火) 13:06:35 (3494d)