1

自分でブログを作って 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 で問題が発生しているのは、自分でパッケージ化してパスを指定したためだと思います。

4

2 に答える 2

0

パスを指定しないでください。Heroku がこれをオーバーライドします。よくわからない限り、デフォルトで問題ありません。どこでも必要なので、特定のグループなしで pg と bb-ruby も必要です。

于 2012-08-18T02:44:00.383 に答える
0

独自のカスタム バージョンを使用するには、github で gem をフォークし、独自の変更を加えてから、gemfile で :git オプションを使用してそれを指定します。

于 2012-08-18T14:39:02.043 に答える