--------(--)
Ruby on Rails 入門
~ Rails初心者による逆引き備忘録 ~
2010-05-10(Mon)
目次
リンク
·Ruby 入門
·Ruby on Rails 入門
インストール
·FreeBSD編
·MAC OSX編
WEBアプリケーション作成(チュートリアル)
·プロジェクト作成
·環境設定
·DB設定
·スキャフォールド(scaffold)
·マイグレーション(migration)
·アプリケーションの確認
本番環境構築
·本番環境構築
ドキュメント
·ドキュメント
基本機能
·スキャフォールド(scaffold)を使って雛形を作る。
·マイグレーション(migration)の使い方。
DB操作
·作成時間と更新時間を表示する。
·limit で出力の件数の上限を指定する。
·find で ID を指定して表示する。
·order で整列して表示する。
·conditions でキーワードマッチ(検索)して表示する。
バリデーション
·バリデーション(validation)
2010-05-10(Mon)
バリデーション(validation)
<< 目次
値を入力する時にその値が数字なのかとかユニークかとかを簡単に検証(規制)することができる。
モデルに以下のように一行追加するだけで可能。
入力値が数字意外だと登録させない。
class Student < ActiveRecord::Base
validates_numericality_of :student_name
end
入力値が既にあったら登録させない。
class Student < ActiveRecord::Base
validates_uniqueness_of :student_name
end
入力値が空だったら登録させない。
class Student < ActiveRecord::Base
validates_presence_of :student_name
end
入力値が正規表現とマッチしないと登録させない。
class Student < ActiveRecord::Base
validates_format_of :student_name , :with => /[a-zA-Z]/
end
入力値が指定数以上の長さだと登録させない。
class Student < ActiveRecord::Base
validates_length_of :person, :maximum => 10
end
入力値の文字数が指定範囲じゃないと登録させない。
class Student < ActiveRecord::Base
validates_length_of :person, :within => 6..12
end
複数カラムを同じ条件で検証する場合は、カラムを","で区切って追加するだけ。
class Student < ActiveRecord::Base
validates_numericality_of :student_name, :student_number
end
<< 目次
2010-05-09(Sun)
マイグレーション(migration)の使い方。
<< 目次
マイグレーションでできる事。
開発環境で実行
rake db:migrate
本番環境で実行
rake db:migrate RAILS_ENV=production
VERSION を指定してその時の状態に戻ったり進んだりが可能。VERSION 番号は、db/migration 以下にあるファイル名の14桁。省略はできない。必ず指定する。
rake db:migrate:up VERSION=201005010131
rake db:migrate:down VERSION=201005010131
カレントバージョンの確認
rake db:version
ひとつ前の状態に戻りたい。
rake db:rollback
3っつ前の状態に戻りたい。
rake db:rollback STEP=3
本番環境でひとつ前の状態に戻りたい。
rake db:rollback RAILS_ENV=production
<< 目次
2010-05-09(Sun)
limit で出力の件数の上限を指定する。
2010-05-09(Sun)
スキャフォールド(scaffold)を使って雛形を作る。
<< 目次
マイグレーションを実行する前にマイグレーションファイルが必要になる。
スキャフォールドでマイグレーションファイルを作成する。
"教室" の情報を持たせたい為、"class_rooms" というテーブルを作成する。
注意するのは、"class_rooms" ではなく "class_room" で指定すること。
rails が勝手に複数形にしてくれるのでコマンドは単数形となる。
ruby script/generate scaffold class_room room_name:string
さらに、上記では、テーブルを作るのと同時にカラムも同時に作成していることがわかる。
"カラム名:型" で指定すればよい。rails では、DB選択に自由度を持たせている為、型を抽象化している。
抽象表現とかよく書いてある。
rails で有効な主な型。
| rails | ruby |
|---|---|
| :string | String |
| :text | String |
| :integer | Fixnum |
| :datetime | Time |
| :timestamp | Time |
| :boolean | Object |
<< 目次

