モデルを定義する
一般的なRailsのプログラム
-
データの形式を決めてモデルを作る
-
コントローラで処理するプログラムを書く
-
script/generate で自動生成
./script/generate
Usage: ./script/generate generator [options] [args]
Rails Info:
-v, --version Show the Rails version number and quit.
-h, --help Show this help message and quit.
General Options:
-p, --pretend Run but do not make any changes.
-f, --force Overwrite files that already exist.
-s, --skip Skip files that already exist.
-q, --quiet Suppress normal output.
-t, --backtrace Debugging: show backtrace on errors.
-c, --svn Modify files with subversion.
(Note: svn must be in path)
Installed Generators
Builtin: controller, integration_test, mailer,
migration, model, observer, plugin, resource,
scaffold, scaffold_resource, session_migration,
web_service
More are available
at http://rubyonrails.org/show/Generators
1. Download, for example, login_generator.zip
2. Unzip to directory /home/sawa/.rails/generators/login
to use the generator with all your Rails apps
or to /home/sawa/memo/generators/login
to use with this app only.
3. Run generate with no arguments for usage information
./script/generate login
Generator gems are also available:
1. gem search -r generator
2. gem install login_generator
3. ./script/generate login
Memoモデルの項目と型
-
Memoモデルの項目と型
名前
|
型
|
説明
|
title
|
string
|
タイトル
|
body
|
text
|
本文
|
created_at
|
datetime
|
作成時間
|
update_at
|
datetime
|
更新時間
|
Memoモデルをgenerateする
./script/generate model memo \
title:string \
body:text \
created_at:datetime \
update_at:datetime
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/memo.rb
create test/unit/memo_test.rb
create test/fixtures/memos.yml
create db/migrate
create db/migrate/001_create_memos.rb
app/models/memo.rb
class Memo < ActiveRecord::Base
end
テーブル定義 db/migrate/001_create_memos.rb
class CreateMemos < ActiveRecord::Migration
def self.up
create_table :memos do |t|
t.column :title, :string
t.column :body, :text
t.column :created_at, :datetime
t.column :update_at, :datetime
end
end
def self.down
drop_table :memos
end
end
-
def self.up メソッド
-
このVerを有効にするときにCallされる
-
Memoモデルに対応するテーブルを定義
-
def self.down メソッド
マイグレーション
-
DBのTableのバージョンなどを管理する
-
テーブルを定義したファイルをmigrate DIRにバージョンごとに持つ
-
rake:db:migrate コマンドで、いつでも好きなバージョンに戻せる
db/migrate/001_create_memos.rb を実行する
rake db:migrate
(in /home/sawa/memo)
== CreateMemos: migrating ====
-- create_table(:memos)
-> 0.0405s
== CreateMemos: migrated (0.0413s) =====
RailsとRubyとSQLiteの型
-
RailsとRubyとSQLiteの型
Rilsの型
|
Rubyの型
|
SQLiteの型
|
string
|
String
|
varchar(255)
|
text
|
String
|
text
|
integer
|
Fixnum
|
integer
|
float
|
Float
|
float
|
datetime
|
Time
|
datetime
|
timestamp
|
Time
|
datetime
|
time
|
Time
|
datetime
|
datetime
|
Date
|
date
|
binay
|
String
|
blob
|
boolean
|
Object
|
boolean
|