欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Active Record: Sexy migrations

程序员文章站 2022-07-12 22:57:17
...
转载 :http://blog.csdn.net/meteorlWJ/archive/2008/02/03/2079356.aspx

现在我们有一种新的migration文件中声明的格式。以前我们是这样写的:

Ruby代码 复制代码

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


而现在,我们可以这样写:

Ruby代码 复制代码

 create_table :people do |t|   
t.integer :account_id
t.string :first_name, :last_name, :null => false
t.text :description
t.timestamps
end

更多关于sexy migration:

 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.references :account
t.string :first_name, :last_name, :null => false
t.text :description
t.timestamps
end


t.references :account也可以写成 t.belongs_to :account(和ActiveRecord::Base一样)


和ActiveRecord::Base的belongs_to一样,多态也同样支持。

create_table :taggings do |t|
t.integer :tag_id, :tagger_id, :taggable_id
t.string :tagger_type
t.string :taggable_type, :default => 'Photo'
end