Ruby on rails RubyonRails中模型的更改

Ruby on rails RubyonRails中模型的更改,ruby-on-rails,model,Ruby On Rails,Model,全部, 我需要澄清如何在RubyonRails中跟踪模型更改。我首先创建了一个模型,其中包含两个字段:name和email。这就是我所做的 通过运行 “rails生成模型用户first\u name:string last\u name:string” 这创建了一个模型文件 然后,我在user中创建的文件中添加了一些验证 使用注释gem对类进行注释 使用“bundle exec rake db:migrate”将我的模型移动到创建表的数据库中 现在,我想向模型中添加更多字段。我需要遵循哪些步骤

全部,

我需要澄清如何在RubyonRails中跟踪模型更改。我首先创建了一个模型,其中包含两个字段:name和email。这就是我所做的

  • 通过运行
  • “rails生成模型用户first\u name:string last\u name:string”

    这创建了一个模型文件

  • 然后,我在user中创建的文件中添加了一些验证
  • 使用注释gem对类进行注释
  • 使用“bundle exec rake db:migrate”将我的模型移动到创建表的数据库中
  • 现在,我想向模型中添加更多字段。我需要遵循哪些步骤

  • 我是否向数据库中添加列并运行一些命令,以便模型(类)与数据库同步

  • 我是否删除并重新创建带有新字段的整个模型

  • 推荐的方法是什么
    Venu

    我不确定您使用的rails版本。。但是intrails3.x可以按如下方式完成

    rails generate migration add_fields_user
    
    这将在db/migrate/[timestamp]/add\u fields\u user.rb中创建一个文件

    现在您可以写入该文件并运行rake db:migrate

    add_column :users , :city, :string
    

    您要做的是通过键入来运行迁移。rails生成迁移的迁移描述。这将创建一个空迁移,您可以定义要添加到模型中的内容。在您的情况下,可能是这样的:

    class DescriptionOfMigration < ActiveRecord::Migration
    
    self.up 
     add_column :users, :email, :string  
    end
    
    self.down
     remove_column :users, :email
    end
    
    end
    
    class DescriptionOfMigration

    这使得您可以在模型上以两种方式进行迁移。

    如果要使用迁移来更新现有表,可以从命令行执行整个过程

    假设你做到了

    rails generate model user first_name:string last_name:string
    
    以前您会添加这样的字段

    rails generate migration AddFieldsToModel new_field:string another_field:string....
    
    Rails在“AddFieldsToModel”上发挥了神奇的作用,并根据值为您计算出表名

    创建迁移后,您可以在db/migrations中查看它,如果您对它满意,就运行它

    rake db:migrate
    

    这将更新数据库以向其中添加新字段。您不需要对实际的model.rb文件执行任何操作,但需要重新运行annotate任务以将其重新标记到model.rb文件。

    rails将使用数据库中的所有字段“填充”此模型是真的吗?字段的名称是否与列名相同?这些是对象级变量吗?