Rails 5:rails c 错误时不显示行号

JUl*_*der 4 ruby ruby-on-rails irb rails-console ruby-on-rails-5

我正在运行 Rails 5,从 4.2.x 升级

在控制台中,当运行失败的方法时,错误不会显示行号,我只能看到:

Traceback (most recent call last):
NoMethodError (undefined method `[]' for nil:NilClass)
Run Code Online (Sandbox Code Playgroud)

我确保development.rb具有:

config.log_level = :debug
Run Code Online (Sandbox Code Playgroud)

我的宝石文件:

source 'https://rubygems.org'

  gem 'rails',              '5.1.2'     # mothership
  gem 'bootstrap-sass'                  # crutches
  gem 'sass-rails'                      # Use SCSS for stylesheets
  gem 'devise'                          # login/sessions
  gem 'devise-i18n'                     # login/sessions
  gem 'haml'                            # markup language
  gem 'uglifier',           '>= 1.3.0'  # Use Uglifier as compressor for JavaScript assets
  gem 'coffee-rails'
  gem 'jquery-rails'                   # Use jquery as the JavaScript library
  gem 'bcrypt',             '~> 3.1.7'  # Use ActiveModel has_secure_password
  gem 'html5_validators'
  gem 'execjs'
  gem 'puma'
  gem 'pg'
  gem 'listen'

  group :development do
    gem 'rails_db'
    gem 'hirb'
    gem "better_errors"
    gem "binding_of_caller"
  end

  group :production do
    gem 'aws-sdk-rails'
    gem 'rails_12factor'
  end
Run Code Online (Sandbox Code Playgroud)

我应该更改什么才能看到发生错误的行?

Edw*_*ard 5

如果您在控制台中执行类似的操作:

begin
  your_method_call
rescue => e
  puts e.backtrace
end
Run Code Online (Sandbox Code Playgroud)

您将能够挽救异常并打印回溯。你不必puts这样做,你可以用回溯做任何你想做的事情,但你明白了。

希望这有帮助。