我正在尝试通过为自己创建一个博客并将其部署在 Heroku 上来学习 Rails,但我在自定义 gem 上遇到了 NoMethodError。一切都在开发中本地工作,但在移动到生产时我一直遇到错误。
Processing by HomeController#index as HTML
2012-08-18T02:17:11+00:00 app[web.1]: Rendered home/index.html.erb within layouts/application (4.1ms)
2012-08-18T02:17:11+00:00 app[web.1]: Completed 500 Internal Server Error in 19ms
2012-08-18T02:17:11+00:00 app[web.1]:
2012-08-18T02:17:11+00:00 app[web.1]: ActionView::Template::Error (undefined method `bbcode_to_html' for #<String:0x000000032ee278>):
2012-08-18T02:17:11+00:00 app[web.1]: 3: <p class="article_body"><%= raw Post.last.body.bbcode_to_html %></p>
2012-08-18T02:17:11+00:00 app[web.1]: 1: <div id="homepage_headline">
2012-08-18T02:17:11+00:00 app[web.1]: 4: </div>
2012-08-18T02:17:11+00:00 app[web.1]:
2012-08-18T02:17:11+00:00 app[web.1]: 2: <h1 class="article_title_headlines"><%= link_to "#{Post.last.title}", post_path(Post.last) %></h1>
2012-08-18T02:17:11+00:00 app[web.1]:
2012-08-18T02:17:11+00:00 app[web.1]: app/views/home/index.html.erb:3:in `_app_views_home_index_html_erb__3063155323426577095_38919220'
我在我的 Gemfile 中包含了 bb-ruby,如下所示:
group :production do
gem 'thin'
gem 'pg'
gem 'bb-ruby', '0.9.6', :path => 'vendor/bb-ruby'
end
...
gem 'bb-ruby', '0.9.6', :path => 'vendor/bb-ruby'
我试过在视图中要求 bb-ruby,但是 Heroku 给了我一个找不到文件的错误。
我想我的主要问题是:Heroku 上的生产和我的机器上的开发有什么区别?除了我从 evironments 的配置文件中可以看出的内容之外。到目前为止,我所知道的是 Heroku 需要预编译 javascript 和 css 等资产。但是宝石呢?我还没有找到关于如何在 Heroku 中使用自定义 gem 的很好的解释。我很感激任何帮助。
更新:通过使用 bb-ruby 0.9.5 版,我已经能够让应用程序正常工作。0.9.6 版是我自己创建的版本(正在开发中),但在 Heroku 中引起了问题,我认为是因为我自己打包并指定了路径。