【发布时间】:2015-02-15 22:03:33
【问题描述】:
我有一个名为 boss_name 的现有表,我想为它创建一个 rails 模型。
我使用“rails generate bossname”来创建模型并添加 self.table_name = "boss_name" 在课堂内。
模型生成成功后,我尝试启动rails控制台并尝试查询表。
Bossname.first 给我 boss_name 表中的第一个值没有问题。
rails 控制台运行良好,但是当我为 bossname_spec.rb 运行 rspec 时,出现错误,提示“Bossname(表不存在)”。
我希望任何人都可以告诉我为什么它适用于 rails 控制台而不适用于应用程序。非常感谢任何有关如何使其在应用程序上运行的提示。
【问题讨论】:
-
您是否也在测试环境中运行了迁移?
RAILS_ENV=test bundle exec rake db:migrate -
我提到我有一个现有的表,它在我创建模型之前就已经存在。对于这种情况,我是否也需要进行迁移?
-
这不是你的错误提到的:
Bossname(Table doesn't exist)。请注意,您的表可以存在于开发数据库中(当您调用rails console时使用),但不能存在于您的测试数据库中(由rspec使用)。 -
mdemolin> 谢谢!这正是你所指出的。他们为开发数据库手动创建了表,但没有为测试数据库创建相同的表!
标签: ruby database ruby-on-rails-3 oracle models