Ruby on rails 希罗库;Rails 3.2 We';I’很抱歉,出了点问题

Ruby on rails 希罗库;Rails 3.2 We';I’很抱歉,出了点问题,ruby-on-rails,heroku,Ruby On Rails,Heroku,这一天我过得很糟糕:#rails noob#githubsucks#herokufail#差点砸了我的笔记本电脑。好的,我感觉好多了 我使用Rails 3.2.12/ruby 1.9.3创建了一个应用程序。它在本地工作-根本没有问题-我用github在本地保存,尽管我遇到了一些github.com问题(请参见此问题)。所以我尝试在本地部署到Heroku,即不通过github.com。这似乎有效——没有明显的问题,但当我尝试实际打开应用程序(即浏览网站)时,我得到了臭名昭著的“我们很抱歉,但出了问

这一天我过得很糟糕:#rails noob#githubsucks#herokufail#差点砸了我的笔记本电脑。好的,我感觉好多了


我使用Rails 3.2.12/ruby 1.9.3创建了一个应用程序。它在本地工作-根本没有问题-我用github在本地保存,尽管我遇到了一些github.com问题(请参见此问题)。所以我尝试在本地部署到Heroku,即不通过github.com。这似乎有效——没有明显的问题,但当我尝试实际打开应用程序(即浏览网站)时,我得到了臭名昭著的“我们很抱歉,但出了问题”。以下是我迄今为止所尝试的:

  • Heroku状态:生产或开发中均无已知问题
  • Heroku运行rake数据库:迁移
  • Heroku pg:重置(后跟#2)
  • 检查gem文件中的“gem'pg'”是否用于生产(尽管我仍然有sqlite3用于开发)
  • 我在/config/production.rb中将“config.assets.compile=false”切换为“true”
  • 我使用的是Rails 3.2.1,所以我已经检查了我是否在cedar stack上
  • 我还启用了“application.rb”文件中的资产-“config.assets.enabled=true”
  • 我已经检查了Heroku日志等多次,没有任何问题-一切看起来都很好-除了有500个错误。从我所读到的内容来看,以前(Rails 4.0之前)可能有一个Heroku问题导致了这些错误,但我似乎找不到任何一个a的参考。它是固定的,或b。如何修复它

    建议

    更新:根据库利克斯的建议,我尝试打开日志级别,但它似乎没有改变日志输出(删除了时间代码)

    应用程序[web.1]:于2013-08-11 07:30:40+0000开始获取124.148.153.24的“/”

    应用程序[web.1]:由StaticPagesController#splash以HTML格式处理

    应用程序[web.1]:在布局/应用程序中呈现静态页面/splash.html.erb(2.6ms)

    heroku[router]:at=info method=GET path=/host=genericappname.herokuapp.com fwd=“124.148.153.24” dyno=web.1连接=2ms服务=1470ms状态=500字节=643

    应用程序[web.1]:在1459毫秒内完成500个内部服务器错误 app[web.1]:ActionView::Template::Error(未定义nil:NilClass的方法“[]”

    app[web.1]:(在/app/app/assets/stylesheets/application.css中):

    应用程序[web.1]:2:

    应用程序[web.1]:3:

    应用程序[web.1]:4:

    应用程序[web.1]:5:“全部”%>

    应用程序[web.1]:6:

    应用程序[web.1]:7:

    应用程序[web.1]:8:

    app[web.1]:app/v

    然而,当我将更改推回到Heroku时,我发现了两个问题:

  • 我没有在gemfile中明确声明我的ruby版本(现在完成了);以及
  • 资产未预编译的问题-“nil:NilClass的未定义方法“[]”。我尝试根据Heroku的建议()从命令行手动编译资产,但没有成功-相同的nil:NilClass错误 相关的,还是一个全新的问题

    更新2: 针对一些评论/问题:

  • 库利克斯,我试过DevCenter(见更新1中的#2)
  • 日志级别设置为:debug,但可能我做错了?我边学习边学习-当生产无法加载时,如何从生产中获取日志信息
  • 关于NilClass,应用程序正在开发中,因此它必须是需要在生产中加载的东西,例如资产或数据库?我已经更新了上面生成的错误–我以前可能切断了一些重要信息。我看起来像是在application.css和其他一些帖子中建议,Rails3.2中的引导可能是生产中的一个问题,所以欢迎任何建议
  • 我尝试了slug和本地编译,两者都不起作用 我正在努力与缺乏Heroku错误信息来指导我,所以在这方面的方向也欢迎

    更新3: 运行“run rake assets:precompile”后,我收到了一大堆弃用警告,大致如下:

    在供应商/插件中有Rails 2.3风格的插件!对这些插件的支持将在Rails 4.0中删除。将它们移出并打包到您的文件中

    但是我的供应商/插件文件夹是空的

    我还运行了“rakeassets:precompile--trace”(我学习了一个新命令!),并了解了以下错误发生的地方:

    **执行资产:预编译:主

    雷克流产了

    /已经需要app/app/assets/stylesheets/application.css

    /app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.2.2/lib/sprockets/base.rb:267:in“循环呼叫保护”


    你认为资产中的错误是什么

    如果有ActionView::Template::Error,请尝试调试它,在其中调用nil对象或smthg else上的数组

    另外,你的迁移通过了吗

    heroku run rake db:migrate
    

    你认为资产中的错误是什么

    如果有ActionView::Template::Error,请尝试调试它,在其中调用nil对象或smthg else上的数组

    另外,你的迁移通过了吗

    heroku run rake db:migrate
    

    好的,回答我自己的问题,以防其他人有类似的问题。最终,我遇到了几个与资产管道相关的问题。在application.rb文件中的某个地方,我在
    config.assets.precompile+=%w(各种文件扩展名)
    行中添加了一些通配符(*),正如对这个问题的回答()。一旦我删除了这些,我就在开发中再次预编译了这些资产(
    $RAILS\u ENV=development-rake-assets:precompile
    ),然后推送到git,然后推送到heroku

    在此过程中,我还遇到了一些来自Webrick的警告/错误堆问题-我通过在我的文件中指定Webrick版本解决了这些问题:

    group :development do
       gem 'webrick', '~> 1.3.1'
    end
    
    如果您像我一样是资产和部署新手,那么绝对值得阅读资产管道的RoR()和Heroku()指南,以及观看Ryan Bate的scree