Devise & Heroku Error



我正在尝试在Heroku上进行设计。它在我的电脑上运行得很好,但当我在Heroku上推送代码时,每次我试图创建用户时都会出现这样的错误:"很抱歉,出了问题。

如果您是应用程序所有者,请查看日志以了解详细信息。我检查了日志,没有错误。它们在这里:

2014-09-13T06:28:11.400635+00:00 heroku[router]: at=info method=GET path="/users/" host=birdl-dev.herokuapp.com request_id=0216598c-e1f8-465f-a68b-b7e648df5309 fwd="24.50.121.235" dyno=web.1 connect=1ms service=219ms status=200 bytes=945
2014-09-13T06:28:15.654213+00:00 heroku[router]: at=info method=GET path="/" host=birdl-dev.herokuapp.com request_id=f1e788f3-ae69-4eb4-a64f-f81a3b8c528e fwd="24.50.121.235" dyno=web.1 connect=1ms service=9ms status=304 bytes=964
2014-09-13T06:28:15.770802+00:00 heroku[router]: at=info method=GET path="/assets/application-cb25950d0e442f07f1fa7be553c321c3.css" host=birdl-dev.herokuapp.com request_id=0f40d69d-bfe7-4de1-aa1c-8ec251710b1e fwd="24.50.121.235" dyno=web.1 connect=0ms service=7ms status=404 bytes=954
2014-09-13T06:28:15.776790+00:00 heroku[router]: at=info method=GET path="/assets/application-433aac58cfba85b04e81533418015cc6.js" host=birdl-dev.herokuapp.com request_id=6d5e0aca-1692-4029-9c46-76e3c1298fae fwd="24.50.121.235" dyno=web.1 connect=1ms service=8ms status=404 bytes=938
2014-09-13T06:28:20.043253+00:00 heroku[router]: at=info method=GET path="/users/sign_in" host=birdl-dev.herokuapp.com request_id=93b3a4fb-0526-4497-a05c-6921d5c3dd14 fwd="24.50.121.235" dyno=web.1 connect=4ms service=68ms status=304 bytes=977
2014-09-13T06:28:20.164359+00:00 heroku[router]: at=info method=GET path="/assets/application-cb25950d0e442f07f1fa7be553c321c3.css" host=birdl-dev.herokuapp.com request_id=2885dbd7-2122-4fd7-993b-476d1b8cac8c fwd="24.50.121.235" dyno=web.1 connect=1ms service=8ms status=404 bytes=967
2014-09-13T06:28:20.162472+00:00 heroku[router]: at=info method=GET path="/assets/application-433aac58cfba85b04e81533418015cc6.js" host=birdl-dev.herokuapp.com request_id=d56a36a7-ae71-4d43-ae85-be6849818767 fwd="24.50.121.235" dyno=web.1 connect=0ms service=9ms status=404 bytes=951
2014-09-13T06:28:24.725755+00:00 heroku[router]: at=info method=GET path="/assets/application-433aac58cfba85b04e81533418015cc6.js" host=birdl-dev.herokuapp.com request_id=f4798f12-b3e4-4be4-8ea7-b461fafe6eb8 fwd="24.50.121.235" dyno=web.1 connect=2ms service=13ms status=404 bytes=951
2014-09-13T06:28:24.589217+00:00 heroku[router]: at=info method=GET path="/users/sign_up" host=birdl-dev.herokuapp.com request_id=cb92257d-c1c3-4cc5-a111-b5b1eb90e0e3 fwd="24.50.121.235" dyno=web.1 connect=0ms service=18ms status=304 bytes=1032
2014-09-13T06:28:24.713540+00:00 heroku[router]: at=info method=GET path="/assets/application-cb25950d0e442f07f1fa7be553c321c3.css" host=birdl-dev.herokuapp.com request_id=7768d23a-c34e-4dff-a8ea-c4a2cd3caf29 fwd="24.50.121.235" dyno=web.1 connect=0ms service=9ms status=404 bytes=967
2014-09-13T06:28:34.201030+00:00 heroku[router]: at=info method=POST path="/users" host=birdl-dev.herokuapp.com request_id=c1e7ab4c-68dd-433e-8f26-870c2392ab3e fwd="24.50.121.235" dyno=web.1 connect=1ms service=772ms status=500 bytes=1335
2014-09-13T06:28:39.163670+00:00 heroku[router]: at=info method=GET path="/users" host=birdl-dev.herokuapp.com request_id=64aa0964-4b0a-476a-9a12-eb6fcd5b5fa3 fwd="24.50.121.235" dyno=web.1 connect=0ms service=15ms status=200 bytes=944
2014-09-13T06:28:39.303286+00:00 heroku[router]: at=info method=GET path="/assets/application-cb25950d0e442f07f1fa7be553c321c3.css" host=birdl-dev.herokuapp.com request_id=6704909e-f077-4a92-af68-5fa63939023e fwd="24.50.121.235" dyno=web.1 connect=1ms service=11ms status=404 bytes=985
2014-09-13T06:28:39.315308+00:00 heroku[router]: at=info method=GET path="/assets/application-433aac58cfba85b04e81533418015cc6.js" host=birdl-dev.herokuapp.com request_id=98a0ab32-b80e-4cda-8fc6-1e3877f25a75 fwd="24.50.121.235" dyno=web.1 connect=1ms service=23ms status=404 bytes=969
2014-09-13T06:29:05.437893+00:00 heroku[router]: at=info method=GET path="/" host=birdl-dev.herokuapp.com request_id=93d4b29e-73c0-43ff-97a8-64c864926af5 fwd="54.89.230.255" dyno=web.1 connect=1ms service=13ms status=200 bytes=396

development.rb

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 and disable caching.                                                                                                                                                                   
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false
  config.action_mailer.delivery_method = :sendmail
  config.action_mailer.perform_deliveries = true
  config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
  # Don't care if the mailer can't send.                                                                                                                                                                           
  config.action_mailer.raise_delivery_errors = false
  # 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
  # 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
  # Adds additional error checking when serving assets at runtime.                                                                                                                                                 
  # Checks for improperly declared sprockets dependencies.                                                                                                                                                         
  # Raises helpful error messages.                                                                                                                                                                                 
  config.assets.raise_runtime_errors = true
  # Raises error for missing translations                                                                                                                                                                          
  # config.action_view.raise_on_missing_translations = true                                                                                                                                                        
end

生产.rb

Rails.application.configure do
  # Settings specified here will take precedence over those in config/application.rb.                                                                                                                              
  # Code is not reloaded between requests.                                                                                                                                                                         
  config.cache_classes = true
  # Eager load code on boot. This eager loads most of Rails and                                                                                                                                                    
  # your application in memory, allowing both threaded web servers                                                                                                                                                 
  # and those relying on copy on write to perform better.                                                                                                                                                          
  # Rake tasks automatically ignore this option for performance.                                                                                                                                                   
  config.eager_load = true
  # Full error reports are disabled and caching is turned on.                                                                                                                                                      
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  # Enable Rack::Cache to put a simple HTTP cache in front of your application                                                                                                                                     
  # Add `rack-cache` to your Gemfile before enabling this.                                                                                                                                                         
  # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.                                                                                                           
  # config.action_dispatch.rack_cache = true                                                                                                                                                                       
  # Disable Rails's static asset server (Apache or nginx will already do this).                                                                                                                                    
  config.serve_static_assets = false
  # Compress JavaScripts and CSS.                                                                                                                                                                                  
  config.assets.js_compressor = :uglifier
  # config.assets.css_compressor = :sass                                                                                                                                                                           
  # Do not fallback to assets pipeline if a precompiled asset is missed.                                                                                                                                           
  config.assets.compile = false
  # Generate digests for assets URLs.                                                                                                                                                                              
  config.assets.digest = true
  # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb                                                                                                             
  # Specifies the header that your server uses for sending files.                                                                                                                                                  
  # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache                                                                                                                                           
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx                                                                                                                                      
  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.                                                                                                                   
  # config.force_ssl = true                                                                                                                                                                                        
  # Set to :debug to see everything in the log.                                                                                                                                                                    
  config.log_level = :info
  # Prepend all log lines with the following tags.                                                                                                                                                                 
  # config.log_tags = [ :subdomain, :uuid ]                                                                                                                                                                        
  # Use a different logger for distributed setups.                                                                                                                                                                 
  # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)                                                                                                                                             
  # Use a different cache store in production.
  # config.cache_store = :mem_cache_store                                                                                                                                                                          
  # Enable serving of images, stylesheets, and JavaScripts from an asset server.                                                                                                                                   
  # config.action_controller.asset_host = "http://assets.example.com"                                                                                                                                              
  # Ignore bad email addresses and do not raise email delivery errors.                                                                                                                                             
  # Set this to true and configure the email server for immediate delivery to raise delivery errors.                                                                                                               
  # config.action_mailer.raise_delivery_errors = false                                                                                                                                                             
  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to                                                                                                                                    
  # the I18n.default_locale when a translation cannot be found).                                                                                                                                                   
  config.i18n.fallbacks = true
  # Send deprecation notices to registered listeners.                                                                                                                                                              
  config.active_support.deprecation = :notify
  # Disable automatic flushing of the log to improve performance.                                                                                                                                                  
  # config.autoflush_log = false                                                                                                                                                                                   
  # Use default logging formatter so that PID and timestamp are not suppressed.                                                                                                                                    
  config.log_formatter = ::Logger::Formatter.new
  # Do not dump schema after migrations.                                                                                                                                                                           
  config.active_record.dump_schema_after_migration = false
end

你猜得到了吗?

DB

Any guess?

我认为错误是您没有迁移Heroku上的数据库

假设您的开发环境"只是"您的Rails应用程序是一个常见的问题——它不止于此。您必须确保您的生产数据库中填充的数据与Rails数据库中的数据相同,

我会确保你已经做到了:

$heroku运行rake数据库:迁移

--

调试

在Heroku上"调试"的一个狡猾技巧是让你的应用程序在"开发"模式下运行。尽管必须确保之后将其切换回生产模式运行,但如果您执行以下操作,它将正确显示错误:

#config/environments/production.rb
config.consider_all_requests_local = true # false

改变这个,重新推到Heroku&然后您将能够在屏幕上看到错误的详细版本。我想它会说你的数据库中没有正确的列;)

另外,不要忘记在config/environments/production.rb中设置config.action_mailer.default_url_options并设置邮件程序。或者,如果您还没有准备好设置邮件程序,请设置config.action_mailer.perform_deliveries = false

日志中的这一行

2014-09-13T06:28:34.201030+00:00 heroku[router]: at=info method=POST path="/users" host=birdl-dev.herokuapp.com request_id=c1e7ab4c-68dd-433e-8f26-870c2392ab3e fwd="24.50.121.235" dyno=web.1 connect=1ms service=772ms status=500 bytes=1335

告诉您在创建用户时发生了异常。尝试在production.rb 中设置

config.log_level = :debug

并重新启动服务器以查看日志中的异常回溯。

最新更新