ActiveRecord属性消失的情况
按照https://stackoverflow.com/a/24496452/102675中的说明,我结束了以下内容:
namespace :db do desc 'Drop, create, migrate, seed and populate sample data' task seed_sample_data: [:drop, :create, :migrate, :seed, :populate_sample_data] do puts 'Sample Data Populated. Ready to go!' end desc 'Populate the database with sample data' task populate_sample_data: :environment do puts Inspector.column_names.include?('how_to_fix') # create my sample data end end
正如您所料,如果我运行bundle exec rake db:populate_sample_data
,我就会成功
但是如果我运行bundle exec rake db:seed_sample_data
我得到所有的迁移输出然后是false
。 换句话说,我看不到Inspector
属性how_to_fix
即使它确实存在,如另一个rake run所certificate的那样。 我的属性去了哪里?
我的猜测是这是一个“缓存”问题。 你可以试试以下吗?
task populate_sample_data: :environment do Inspector.reset_column_information # ... end
PS我们曾经有过类似的问题,使用具有完全相同模式的不同数据库(除了一些列,除了这里和那里)
- ActiveRecord是否使用命名约定“ID”为每个表分配密钥,如果是,为什么?
- OmniAuth Railscast中的DangerousAttributeError教程:create由ActiveRecord定义
- Rails:相同两个模型之间的多个连接表
- 覆盖database.yml的策略?
- 跳过:保存ActiveRecord对象时触摸关联
- 优雅的PostgreSQL Group for Ruby on Rails / ActiveRecord
- rails paperclip没有通过sql查询从另一个模型直接访问
- Ruby on Rails指导Activerecord关联文档不正确?
- 如何将CarrierWave文件迁移到新的存储机制?