首页 > 解决方案 > Rails 6 中的 Rails 红色开发错误页面在哪里?

问题描述

我正在将应用程序从 Rails 5.2 重构为 Rais 6.1。我创建了一个新的 Rails 6 应用程序,并将功能从旧的 Rails 5.2 转移到新的 Rails 6.1 应用程序。

在开发中,应用程序正确启动并生成 html 页面。但是当发生错误时,它不会显示包含大量信息和参数的经典错误页面,而是显示生产错误页面,说明“我们很抱歉,但出了点问题”。

我只修改了 development.rb 文件,添加了 action_mailer 配置:

Rails.application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Do not eager load code on boot.
  config.eager_load = false

  # Show full error reports.
  config.consider_all_requests_local = true

  # Enable/disable caching. By default caching is disabled.
  # Run rails dev:cache to toggle caching.
  if Rails.root.join('tmp', 'caching-dev.txt').exist?
    config.action_controller.perform_caching = true
    config.action_controller.enable_fragment_cache_logging = true

    config.cache_store = :memory_store
    config.public_file_server.headers = {
      'Cache-Control' => "public, max-age=#{2.days.to_i}"
    }
  else
    config.action_controller.perform_caching = false

    config.cache_store = :null_store
  end

  # Store uploaded files on the local file system (see config/storage.yml for options).
  config.active_storage.service = :local

  # Print deprecation notices to the Rails logger.
  config.active_support.deprecation = :log

  # Raise an error on page load if there are pending migrations.
  config.active_record.migration_error = :page_load

  # Highlight code that triggered database queries in logs.
  config.active_record.verbose_query_logs = true

  # Debug mode disables concatenation and preprocessing of assets.
  # This option may cause significant delays in view rendering with a large
  # number of complex assets.
  config.assets.debug = true

  # Suppress logger output for asset requests.
  config.assets.quiet = true

  # Raises error for missing translations.
  # config.action_view.raise_on_missing_translations = true

  # Use an evented file watcher to asynchronously detect changes in source code,
  # routes, locales, etc. This feature depends on the listen gem.
  # config.file_watcher = ActiveSupport::EventedFileUpdateChecker

  # Define connection to email services
  config.action_mailer.default_url_options = { :host => 's721000108907b.odq.ch/' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = false
  config.action_mailer.perform_caching = false
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.default :charset => "utf-8"
end

由于所有请求都已被视为本地请求,我如何才能获得我在 Rails 5 中知道的完整错误报告?

更新:我将升级建议应用于 Rails 6.1,并确定了可能与该问题有关的错误消息。但我还是不明白。欢迎您的帮助!

C:/Sites/DQ_Foundation/app/views/layouts/_header.html.erb:21: warning: __FILE__ in eval may not return location in binding; use Binding#source_location instead
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/web-console-3.7.0/lib/web_console/exception_mapper.rb:31: warning: in `eval'

ArgumentError: wrong number of arguments (given 2, expected 3)

非常感谢!

标签: ruby-on-rails

解决方案


推荐阅读