【问题标题】:Cannot start rails server: undefined method `yaml_as' for BigDecimal:Class (NoMethodError)无法启动 Rails 服务器:BigDecimal:Class (NoMethodError) 的未定义方法“yaml_as”
【发布时间】:2020-12-16 20:44:16
【问题描述】:

我正在将项目从 rails 3 升级到 rails 6.0.0。我也更新到 Ruby 2.6.3。在运行rails s 我遇到:

/Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-2.3.2/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb:22: warning: constant ::Fixnum is deprecated
/Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-2.3.2/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb:89: warning: constant ::Fixnum is deprecated
Traceback (most recent call last):
    21: from /Users/tibsar/.rbenv/versions/2.6.3/bin/rails:23:in `<main>'
    20: from /Users/tibsar/.rbenv/versions/2.6.3/bin/rails:23:in `load'
    19: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rails-2.3.2/bin/rails:14:in `<top (required)>'
    18: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    17: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    16: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rails-2.3.2/lib/rails_generator.rb:28:in `<top (required)>'
    15: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    14: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    13: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-2.3.2/lib/active_support.rb:55:in `<top (required)>'
    12: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    11: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    10: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-2.3.2/lib/active_support/core_ext.rb:1:in `<top (required)>'
     9: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-2.3.2/lib/active_support/core_ext.rb:1:in `each'
     8: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-2.3.2/lib/active_support/core_ext.rb:3:in `block in <top (required)>'
     7: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     6: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
     5: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-2.3.2/lib/active_support/core_ext/bigdecimal.rb:4:in `<top (required)>'
     4: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-2.3.2/lib/active_support/core_ext/bigdecimal.rb:5:in `<class:BigDecimal>'
     3: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-2.3.2/lib/active_support/core_ext/bigdecimal.rb:5:in `include'
     2: from /Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-2.3.2/lib/active_support/core_ext/bigdecimal/conversions.rb:12:in `included'
     1: from /Users/tibsarsoftware/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-2.3.2/lib/active_support/core_ext/bigdecimal/conversions.rb:12:in `class_eval'
/Users/tibsar/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-2.3.2/lib/active_support/core_ext/bigdecimal/conversions.rb:16:in `block in included': undefined method `yaml_as' for BigDecimal:Class (NoMethodError)
Did you mean?  yaml_tag

我看到了更新 delayed_job gem 的建议,但这并没有解决问题。


更新

我的宝石文件:

source 'https://rubygems.org'
# ruby
ruby '2.6.3'

gem "rails", "6.0.0"

bundle install 输出“使用 rails 6.0.0”

但是rails -v 的输出是 2.3.2

【问题讨论】:

  • 我想知道为什么错误消息中的路径包含这个段rails-2.3.2?你确定你的 Rails 6.0 更新成功了吗?
  • @spickermann 我自己也想知道。在我的 Gemfile 中,我有 gem "rails", "6.0.0"bundle install 之后 bundle update 输出 Using rails 6.0.0
  • @spickermann 我现在发现rails -v 正在输出 2.3.2

标签: ruby-on-rails ruby ruby-on-rails-6


【解决方案1】:

我需要手动卸载并重新安装 rails。

gem uninstall rails

gem install rails -v 6.0.0

gem install railties &amp;&amp; rbenv rehash

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 2018-06-16
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多