【问题标题】:Rails table doesn't exist after create model from existing table从现有表创建模型后 Rails 表不存在
【发布时间】: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


【解决方案1】:

这表明boss_name 表存在于您的开发数据库中,但不存在于您的测试数据库中。您可以像这样将当前的开发数据库架构复制到您的测试数据库中:

rake db:schema:dump
RAILS_ENV=test rake db:setup

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多