如何解决rake db: 命令显示 NoMethodError: nil:NilClass 错误的未定义方法“chomp”
执行 rake db: 命令时,显示错误
warning: parser/current is loading parser/ruby26,which recognizes
warning: 2.6.7-compliant syntax,but you are running 2.6.2.
warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
C:/Ruby26-x64/bin/rake: No such file or directory - which yarn
rake aborted!
NoMethodError: undefined method `chomp' for nil:NilClass
C:/.../config/environment.rb:5:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)
这发生在 Windows10 机器上,但 mac 机器工作正常,没有错误。这是一个 Ruby on rails 应用程序。 这是 environment.rb:
# Load the Rails application.
require_relative 'application'
# Initialize the Rails application.
Rails.application.initialize!
任何帮助将不胜感激。
编辑:
使用 --trace 标志运行 rake 的输出以查看 NoMethodError 的确切来源 (rake --trace db:migrate
):
rake --trace db:migrate
warning: parser/current is loading parser/ruby26,but you are running 2.6.2.
warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
** Invoke db:migrate (first_time)
** Invoke db:load_config (first_time)
** Invoke environment (first_time)
** Execute environment
C:/Ruby26-x64/bin/rake: No such file or directory - which yarn
rake aborted!
NoMethodError: undefined method `chomp' for nil:NilClass
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/mjml-rails-4.6.1/lib/mjml.rb:68:in `check_for_yarn_mjml_binary'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/mjml-rails-4.6.1/lib/mjml.rb:44:in `valid_mjml_binary'
C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/mjml-rails-4.6.1/lib/mjml/railtie.rb:13:in `block in <class:Railtie>'
解决方法
回答我自己的问题:
我和我的团队在调查中发现 Gemfile 和 Gemfile.lock 中指定的版本不同。版本已经明确升级,所以我们不得不加载一个预定义的 Gemfile.lock,并在同一版本上引入 gem 解决了这个问题。 因此,对于遇到此问题的其他人,请检查(Gemfile 和 Gemfile.lock 的版本)。
附注。令我们惊讶的是,它实际上与数据库配置没有任何关系。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。