无法启动 rails 服务器:BigDecimal:Class 的未定义方法“yaml_as”(NoMethodError)
Cannot start rails server: undefined method `yaml_as' for BigDecimal:Class (NoMethodError)
我正在将一个项目从 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 的建议,但这并没有解决问题。
更新
我的 Gemfile:
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。
gem uninstall rails
gem install rails -v 6.0.0
gem install railties && rbenv rehash
我正在将一个项目从 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 的建议,但这并没有解决问题。
更新
我的 Gemfile:
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。
gem uninstall rails
gem install rails -v 6.0.0
gem install railties && rbenv rehash