Rails迁移成功,但没有出现在模型中?

时间:2014-08-04 20:26:51

标签: ruby-on-rails rails-activerecord rails-migrations

我无法弄清楚为什么我的迁移工作有效但却没有出现在相应的模型中......

  1. 迁移迁移以向表中添加字段:

    def up
      add_column :quick_tests, :trace_route_data, :text, :null => true
    end
    
    def down
      remove_column :quick_tests, :trace_route_data
    end
    
  2. 看着schema.rb,就在那里。

  3. :trace_route_data模型中<{1}}添加attr_accessible

  4. 通过QuickTest打开rails控制台,运行bundle exec rails c,我可以看到QuickTest.new字段。
  5. 但是,当我在:trace_route_data方法中暂停时执行相同的QuickTest.new语句时,该字段就不存在。

    为什么这个字段出现在rails控制台中,而不是我的实际应用程序?

1 个答案:

答案 0 :(得分:2)

我怀疑在迁移过程中出现了问题,因此它从未应用于数据库。 Rails使用数据库中的实际模式来构建模型对象,因此模型没有显示更改的事实意味着更改几乎肯定不在数据库中(尽管在schema.rb中)。 / p>

我建议您回滚迁移并以详细模式再次运行。这应该显示错误,或者至少显示正在运行的SQL。在这种情况下,您可以在数据库控制台上手动运行SQL,看看会发生什么。