所有
我需要澄清如何在轨道上的ruby中跟踪模型更改。我开始创建一个模型,说两个字段,名称和电子邮件。这就是我所做的
“rails生成模型用户first_name:string last_name:string”
这创建了一个模型文件
我现在想为模型添加更多字段。我需要遵循哪些步骤?
我是否在数据库中添加了列并运行了一些命令,以便模型(类)与db同步?
我是否删除并使用新字段重新创建整个模型?
建议的方法是什么 VENU
答案 0 :(得分:2)
您希望使用迁移来更新现有表,您可以从命令行执行整个过程
假设你已经完成了
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文件执行任何操作 - 但是您需要重新运行注释任务以将其重新注释到model.rb文件。
答案 1 :(得分:0)
我不确定你使用的是什么版本的rails ..但是int rails 3.x它可以作为
完成rails generate migration add_fields_user
这会在db / migrate / [timestamp] /add_fields_user.rb中创建一个文件
现在您可以在文件中写入并运行rake db:migrate
add_column :users , :city, :string
答案 2 :(得分:0)
您要做的是通过键入来运行迁移。 rails生成迁移description_of_migration。这将创建一个空迁移,您可以定义要添加到模型的内容。在你的情况下,它可能是这样的:
class DescriptionOfMigration < ActiveRecord::Migration
self.up
add_column :users, :email, :string
end
self.down
remove_column :users, :email
end
end
这使得您可以在模型上双向迁移。