ruby-on-rails之设计和 Heroku 错误

zhenyulu 阅读:12 2024-10-25 08:56:14 评论:0

我正在尝试在 Heroku 上进行设计。它在我的电脑上运行良好,但是当我在 Heroku 上推送我的代码时,每次我尝试创建用户时都会收到此错误:`我们很抱歉,但出了点问题。

如果您是应用程序所有者,请检查日志以获取更多信息。`.我检查了日志a并没有错误。他们在这里:

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 

开发.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 

有什么猜测吗?

请您参考如下方法:

数据库

Any guess? 

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

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

我会确保你已经这样做了:

$ heroku run rake db:migrate

--

调试

在 Heroku 上“调试”的一个偷偷摸摸的技巧实际上是让您的应用程序在“开发”模式下运行。虽然您必须确保之后将其切换回生产模式运行,但如果您执行以下操作,它将正确显示错误是什么:

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

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


标签:Ruby
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号