gpt4 book ai didi

ruby-on-rails - 手动更新模型后更新数据库/迁移?

转载 作者:行者123 更新时间:2023-12-04 06:48:06 25 4
gpt4 key购买 nike

例如我有这个模型:

class Product < ActiveRecord::Base
attr_accessible :name, :order
end

然后,当我执行 rake db:migrate时,它创建了这个 db/migrate/20120825132038_create_products.rb :
class CreateProducts < ActiveRecord::Migration
def change
create_table :products do |t|
t.integer :order
t.string :name

t.timestamps
end
end
end

但是这一切都发生了,因为我用了 rails generate Product order:integer name:string
现在,在我转到产品模型并将其手动更改为:
class Product < ActiveRecord::Base
attr_accessible :name, :order, :category_id

validates :name, uniqueness: true
belongs_to :category
end

如何使用更新自动更新 db/migrate/20120825132038_create_products.rb

最佳答案

当您运行rake db:migrate时,它并未创建db/migrate/20120825132038_create_products.rb。该迁移文件是在您运行时创建的

rails generate Product order:integer name:string
attr_accessible与迁移数据库无关。

,我强烈建议您阅读Migrations上的Rails指南,以及Mass Assignment上讨论attr_accessible的部分。

要生成一个新的迁移文件(因为您提到的上一个 rake db:migrate命令已经处理了您的问题中提到的文件),请运行
rails g migration AddCategoryIdToProduct category_id:integer

这将产生一个新的迁移,内容如下
class AddCategoryIdToProduct < ActiveRecord::Migration
def change
add_column :products, :category_id, :integer
end
end

现在再次运行 rake db:migrate将处理此迁移文件,将新的 category_id整数列添加到 products表中。

关于ruby-on-rails - 手动更新模型后更新数据库/迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12122087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com