我实际上面临一个关于数据库迁移及其种子的大问题。我有一个formes
包含 2 个字段的表,name
并且country_id
. 我最近需要添加一个code
字段 inot 它,所以我做了:
class AddCodeToFormes < ActiveRecord::Migration
def change
add_column :formes, :code, :string
end
end
到目前为止一切顺利,使用rake db:migrate
. 然后在我的seeds
文件中,我想添加新列以填写新数据。这是我的文件:
country = Country.create!( code: 'US', name: 'USA' )
Forme.delete_all
Forme.create!( name: '-', country_id: country.id, code: '-' )
Forme.create!( name: 'item 1', country_id: country.id, code: 'PARTICULIER' )
Forme.create!( name: 'item 2', country_id: country.id, code: 'PATENTE' )
Forme.create!( name: 'item 3', country_id: country.id, code: 'SARL' )
Forme.create!( name: 'item 4', country_id: country.id, code: 'EURL' )
然后,我rake db:seed
像第一次一样运行以填充数据库。它可以正常工作,并且数据已成功填充到数据库中。
但是,当我尝试访问我的应用程序时,尝试访问关联数据时出现错误,例如:@contact.forme.code
然后,当我重新创建数据库时,它就像一个魅力。那么我做错了什么?
编辑:
我不知道可能有用的信息是我的 mysql 数据库引擎是 InnoDB。正如我在评论中所说,没有可见的错误,数据库看起来很好,但 ActiveRecord 不能再处理关联
编辑 2:
没有code
我的价值seeds.rb
,它就像一个魅力
编辑 3:
Rails 在访问页面时实际上给了我一个错误:undefined method 'code' for nil:NilClass
on@contact.forme.code