【发布时间】:2012-02-02 15:51:48
【问题描述】:
我正在使用 Rails 3.2 并且有一个包含代码的迁移:
add_column :users, :gift_aid, :integer, :default => 2
# reset columns
User.reset_column_information
... code here to load legacy data from sqlite3 database ...
# now create a user with the loaded column data
user = User.create( ...other cols...,
:gift_aid => migrated_gift_aid_column_data,
...other cols... )
我在运行迁移时得到unknown attribute: gift_aid。 User.column_names 在调用reset_column_information 之前和之后显示相同的列表。
奇怪的是,当我手动删除 mysql 中的列并重新运行迁移时,它按预期工作。再次从第一次迁移开始,使用空数据库,但它不起作用,因此它与运行所有迁移而不是单个迁移有关。
我之前在 User 模型上进行了几次迁移,都包括 reset_column_information 并且都可以正常工作。
我真的在这个问题上摸不着头脑 - 任何人都有任何想法
【问题讨论】:
标签: ruby-on-rails activerecord migration rake ruby-on-rails-3.2