我是Rails的新手。因此,如果这是一个愚蠢的问题,请提前道歉。我已经阅读了Michael Heartl的书,并尝试自己编写应用程序。
我已经编写了一些基本测试,但在尝试使用
测试应用时$ bundle exec rake test
我在终端上收到以下消息
Web Console is activated in the test environment, which is
usually a mistake. To ensure it's only activated in development
mode, move it to the development group of your Gemfile:
gem 'web-console', group: :development
If you still want to run it the test environment (and know
what you are doing), put this in your Rails application
configuration:
config.web_console.development_only = false
当我将上述内容添加到development.rb时,它仍然没有什么区别。
请帮助我理解我做错了什么。
答案 0 :(得分:9)
您需要做的是确保在Gemfile中只在组开发中加载了行gem 'web-console'
。
你可以发布你的Gemfile吗?通过这种方式,我们可以看出这是否是导致它的原因。
在你的Gemfile中它应该是:
gem 'web-console', group: :development
或
group :development do
gem 'web-console'
end
答案 1 :(得分:1)
如果您有此行,请在Gem文件中
gem 'web-console', '~> 2.0'
删除它。
然后运行
$ gem install bundler
$ bundle install --without production
答案 2 :(得分:1)
我也经历过Michael Hartl的课程。我知道Gemfile声明你应该按照它的方式拥有它,但它会显示该消息。如果您不想更改Gemfile并将其保留为书中的方式,则可以转到config>环境> test.rb并在下面的行中添加。
config.web_console.development_only = false
保存这个,你很高兴。
答案 3 :(得分:0)
我也在和Michael Heartl的书一起学习ROR并遇到同样的问题! 帮助我的是为应用程序的Gemfile添加一个'guard'宝石。 所以Gemfile的部分看起来像这样:
group :development do
gem 'sqlite3'
gem 'byebug'
gem 'spring'
gem 'web-console', '~> 2.0'
end
group :test do
gem 'minitest-reporters'
gem 'mini_backtrace'
gem 'guard'
gem 'guard-minitest'
end
更改代码后再运行以下命令:
bundle install --without production
在这些操作之后,测试由命令执行:
bundle exec rake test