scaffoldの変更
まず、scaffoldで作成されるものが変わった。Rails 1.2でscaffold_resourceで作成されるものが2.0では、scaffoldになった。scaffold_resourceでは、RESTfulのコードが作成されていたので、Rails 2.0以降は、RESTfulメインということのようです。
1つのアクションに対して複数のビューが指定できる
これも、Rails 1.2で少し出てきていたが、1つのアクションに対して複数のビューを指定できるようになった。
またそのビューごとにテンプレートエンジンを指定できるようになった。
リクエストでは、「(アクション).(拡張子)」と指定できるようになりました。描画形式はhtml、rss、xmlとか、テンプレートエンジンは、erb(Rails標準)、haml(記述が簡単なテンプレートエンジン ※使用できるためには別途ライブラリが必要)とかになると思います。
show.html.erbだと、showアクションの結果をhtml形式で出力するerbベースのビュー、show.xml.hamlだと、showアクションの結果をxml形式で出力するhamlベースのビューということになります。
この変更のため、scaffoldで作成されるファイルもedit.html.erb、index.html.erb等に変更されています。
マイグレーションの記述方式の変更
create_table :people do |t|
t.column, "account_id", :integer
t.column, "first_name", :string, :null => false
t.column, "last_name", :string, :null => false
t.column, "description", :text
t.column, "created_at", :datetime
t.column, "updated_at", :datetime
end
が
create_table :people do |t|
t.integer :account_id
t.string :first_name, :last_name, :null => false
t.text :description
t.timestamps
end
のように記述できるようになりました。
t.column ・・・の代わりに、t.integer、t.stringとか型名の関数で指定できます。
同じ型でオプションが同じ場合、t.string :first_name, :last_name, :null => falseとか複数まとめて指定できます。
t.timestampsと指定すると、t.datetime :created_at, :updated_atと同じ意味になります。
タグ:ruby on rails 2.0