自分でブログを作って 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 でのプロダクションと私のマシンでの開発の違いは何ですか? 環境の構成ファイルからわかること以外。これまでにわかっていることは、Heroku では javascript や css などのアセットをプリコンパイルする必要があるということだけです。しかし、宝石はどうですか?Heroku でカスタム gem を使用する方法について、適切な説明を見つけることができませんでした。助けていただければ幸いです。
更新: bb-ruby のバージョン 0.9.5 を使用して、アプリを正常に動作させることができました。バージョン 0.9.6 は自分で作った(開発中の)バージョンですが、Heroku で問題が発生しているのは、自分でパッケージ化してパスを指定したためだと思います。