Rails控制台测试加载开发环境

7

我有一个问题,涉及到

IT技术。
rails console test

导致
Loading development environment (Rails 3.1.0)

我猜测这是一个 RAILS_ENV 问题,因为执行以下操作:
RAILS_ENV=test rails console

导致
Loading test environment (Rails 3.1.0)

有什么建议吗?谢谢。
2个回答

12

是的,您必须指定RAILS_ENV或使用rails console [environment]


1
我认为它不存在。然而,有一个 --sandbox 选项,允许您在不更改该环境的数据情况下运行 Rails 控制台。我认为您可以通过传递测试到 dbconsole (rails dbconsole test) 来进入测试数据库。 - Brian
1
或许我错了... 我刚在一个项目上运行了 rails c test 命令,发现输出为:Loading test environment (Rails 3.1.0) - Brian
2
但是这个答案说可以使用 rails console [environment] 命令在测试环境下启动 Rails 控制台。这正是 OP 所做的!但是他失败了。因此,这个答案不应该被接受。 - MarkDBlackwell
@MarkDBlackwell,建议原帖作者拒绝之前接受的答案,只是为了接受你自己的答案,通常被认为是不好的行为。我假设我的答案在某种程度上对他有所帮助,因为如果没有帮助,他就不会接受它。 - Adam Eberlin
1
@Adam-Eberlin,我的目的不是你所描述的那样!很难看出你接受答案中的那个方面如何帮助他,因为他在问题中已经包含了它。看起来他是在问为什么有差异。如果这是不好的形式,我可能没有你那么有竞争力。; / 顺便说一下,Axsuul,你为什么接受那个答案? - MarkDBlackwell
显示剩余4条评论

1

环境变量RAILS_ENV已经设置了吗(在您的命令行环境中)?

理想情况下,rails console test应该将RAILS_ENV设置为“test”,并忽略命令行环境中的值。

但是,如果它被设置为除“test”之外的其他值(非空),那么显然,在rails console testRAILS_ENV=test rails console之间可能会看到行为上的差异。

编辑:如果我的shell环境中RAILS_ENV设置为开发环境,并且我执行rails console test,那么我会得到测试环境,就像Adam Eberlin和Brian也报告的那样。

对于您观察到的行为差异,我仍然不清楚您的设置有何不同或者是什么导致了这种差异。

因此,您不应接受这个(我的)答案!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接