“预期的字符串默认值......”的含义在Ruby on Rails上

Meaning of "Expected string default value for ..." on Ruby on Rails

提问人:Ουιλιαμ Αρκευα 提问时间:12/6/2016 最后编辑:Ουιλιαμ Αρκευα 更新时间:1/12/2017 访问量:12182

问:

最近我在 Rails (5.0.0.1) 上为 Ruby (2.3.3) 创建了一个应用程序:

$ rails _5.0.0.1_ new myapp --database=postgresql -T

设置 Gemfile 并测试与我的数据库的连接后:

$ rails db:migrate

我尝试生成模型,但收到奇怪的消息:

$ rails g model Competition title:string
Expected string default value for '--test-framework'; got false (boolean)
Expected string default value for '--jbuilder'; got true (boolean)
Expected string default value for '--test-framework'; got false (boolean)
      invoke  active_record
      create    db/migrate/20161206021603_create_competitions.rb
      create    app/models/competition.rb

关于“Expected string default value for ...”的这些消息是什么意思?

提前致谢。

更新:我的 Gemfile

source 'https://rubygems.org'

ruby '2.3.3'

gem 'rails', '~> 5.0.0', '>= 5.0.0.1'
gem 'pg', '~> 0.18'
gem 'puma', '~> 3.0'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2'
gem 'jquery-rails'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'

gem 'jquery-turbolinks'
gem 'groupdate'
gem 'hightop'
gem 'countries'
gem 'faker'
gem 'haml'
gem 'haml-rails'

group :development, :test do
    gem 'byebug', platform: :mri
    gem 'better_errors'
    gem 'binding_of_caller'
    gem 'pry-byebug'
    gem 'awesome_print'
    gem 'irbtools-more', require: 'irbtools/binding'
    gem 'listen'
end
Ruby-on-Rails Rails 迁移

评论

0赞 Carlos Goce 12/6/2016
我在 ruby 2.3.1 和 rails 5.0.0.1 中遇到了类似的行为 运行 rails 生成模型,所有内容都设置为默认值: 在进程 11594 中通过 Spring 预加载器运行 '--jbuilder' 的预期字符串默认值;Got True(布尔值)
0赞 Ουιλιαμ Αρκευα 12/8/2016
我认为这些消息可能是由 Rails 5.0.0.1 引起的
0赞 Carlos Goce 12/8/2016
我更改为 Ruby 2.2.5,但我不再遇到这些问题
0赞 MmmHmm 12/26/2016
Thor github 上的更新日志说明可能对你有用,Njoy!

答:

52赞 Thilo 12/8/2016 #1

这在 Rails 5.0.0.1 和 ruby 2.2.0 中发生过,当时我执行了 .它与 Rails 或 Ruby 无关,而是由于 thor gem(它是 jquery-rails 等的依赖项)从 0.19.1 升级到 0.19.4 引起的。bundle update

降级到 0.19.3 并没有解决它。0.19.2 抛出其他错误。降级到 0.19.1 终于修复了它。

因此,将其添加到您的 Gemfile 中:

gem 'thor', '0.19.1'

运行应该摆脱这个问题,直到 THOR 维护者能够解决这个问题。bundle update thor

更新 1:Github 问题)

更新 2:这应该可以通过 thor v0.20+ 解决

评论

0赞 Ουιλιαμ Αρκευα 12/8/2016
我不使用那个宝石,但宝石的版本可能是解决这些消息原因的提示。
4赞 Thilo 12/8/2016
我猜大多数人不会直接使用它 - 但检查一下你的,你很有可能确实隐含地使用它。Gemfile.lock
0赞 Ουιλιαμ Αρκευα 12/8/2016
你是对的,这些消息不再显示。但我最初的问题还没有得到回应:这些消息的含义是什么?它们是错误、警告还是不应显示的简单文本?
2赞 Thilo 12/9/2016
它们是警告,但我不会忽视它们。它们指示命令的这些选项的默认值被错误地覆盖,这可能会产生奇怪的后果。您可以通过运行 来查看实际默认值应该是多少。rails g modelrails g model --help
0赞 frostymarvelous 11/18/2023
谢谢@Thilo。就我而言,我在我的禁用规范生成时使用了。从 false 更改为 nil。g.test_framework falseapplication.rb