Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 虚拟应用程序中的Datatable错误-列不存在_Ruby On Rails_Ruby_Rails Engines - Fatal编程技术网

Ruby on rails 虚拟应用程序中的Datatable错误-列不存在

Ruby on rails 虚拟应用程序中的Datatable错误-列不存在,ruby-on-rails,ruby,rails-engines,Ruby On Rails,Ruby,Rails Engines,我有一个带引擎的应用程序。在这个应用程序里面,我创建了一个虚拟的测试应用程序。 我在我的\u引擎中添加了一个新的迁移。 然后我在运行rails my_engine:install:migrations的虚拟应用程序中导入这个新迁移,然后是“rake db:migrate” 所以要知道这两个模式看起来是相同的 然而,当我运行我的测试时,我得到了 ActiveRecord::StatementInvalid:PG::UndefinedColumn:ERROR:column my_table.new_

我有一个带引擎的应用程序。在这个应用程序里面,我创建了一个虚拟的测试应用程序。 我在
我的\u引擎
中添加了一个新的迁移。 然后我在运行rails my_engine:install:migrations的虚拟应用程序中导入这个新迁移,然后是“rake db:migrate”

所以要知道这两个模式看起来是相同的

然而,当我运行我的测试时,我得到了

ActiveRecord::StatementInvalid:PG::UndefinedColumn:ERROR:column my_table.new_字段不存在


您有什么想法吗?

您可能只是在
开发
环境中运行迁移,而不是在
测试
环境中(因此,不是在测试表中)


RAILS\u ENV=test
前缀执行相同的命令尝试运行
RAILS\u ENV=test rake db:migrate
,以在
test
环境上运行迁移

或者,如果您使用的是rails 4.1+,那么您可以添加
ActiveRecord::Migration.Maintenance\u test\u模式到您的
rails\u助手

这样做的目的是,当测试模式已经启动时,它不仅仅是提升 挂起迁移时,Rails将尝试加载架构。例外情况将会发生 现在,仅当架构之后有挂起的迁移时才会引发 已加载

使用此选项时,需要注意以下几点:

迁移仍然需要手动运行;虽然现在这只需要在“开发”环境中进行 如果架构尚未初始化,将引发异常。异常将提供说明rake db:migrate需要运行的指令

因此,添加此选项意味着您只需运行一次
db:migrate
;仅在您的
开发中