瞎扯淡 huacnlee 如何博客项目 personlab 生成的 20090418165332_add_comment_count_to_posts.rb

xufeng · 2011年12月10日 · 最后由 ywencn 回复于 2012年02月04日 · 5529 次阅读

https://github.com/huacnlee/personlab/tree/master/db/migrate

20090418165332_add_comment_count_to_posts.rb

20090418165125_add_view_count_to_posts.rb

直接用 rails g model *** 生成的吗? @huacnlee

他与 belong_to t.references:id 有什么关系啊?

2.2 建立一个独立的 Migration 若你建立 migration,不是为了新增 Model,而是为了其他目的(比方说,在现有数据库表中新增一个字段),那可以只用 migration generator(数据库迁移生成器)来做:

rails generate migration AddPartNumberToProducts 这样会建立一个空的、但已命名好的 migration:

class AddPartNumberToProducts < ActiveRecord::Migration

def self.up end

def self.down end

end 把 migration 的名称,取做「AddXXXToYYY」、「RemoveXXXFromYYY」这类的格式,后面再接上一串栏名/栏类型的清单,这样的话,这个 migration 就会含有对应的 add_column 和 remove_column 叙述。

rails generate migration AddPartNumberToProducts part_number:string 会产生出:

class AddPartNumberToProducts < ActiveRecord::Migration

def self.up add_column :products, :part_number, :string end

def self.down remove_column :products, :part_number end

end 同理,

rails generate migration RemovePartNumberFromProducts part_number:string 则产生出:

class RemovePartNumberFromProducts < ActiveRecord::Migration

def self.up remove_column :products, :part_number end

def self.down add_column :products, :part_number, :string end

end 这个技巧,可以产生不只一栏,像是:

rails generate migration AddDetailsToProducts part_number:string price:decimal 就可以产生出:

class AddDetailsToProducts < ActiveRecord::Migration

def self.up add_column :products, :part_number, :string add_column :products, :price, :decimal end

def self.down remove_column :products, :price remove_column :products, :part_number end

end 这些自动产生的东西,只是个起点,你可以增删修改,直到满意为止。

这个 太基础了吧,楼主 需要加油啊

楼主,找几本书过一遍

需要 登录 后方可回复, 如果你还没有账号请 注册新账号