2011-06-30 7 views
4

私はプログラミングの12時間目ですので、何か簡単な見落としがあるかもしれませんが、この問題に関する提案はありますか?私app_helperでrails:NoMethodError in productionのみ

私は、開発中の素晴らしい作品

HAML

module Haml::Filters::Redcarpet 
    include Haml::Filters::Base 
    include ActionView::Helpers::TagHelper 

    def render(text) 
    options = [:autolink, :smart, :hard_wrap, :no_intraemphasis] 
    content_tag(:div, Redcarpet.new(text.to_s, *options).to_html.html_safe, :class => "markup") 
    end 
end 
でredcarpetフィルター用のモジュールを追加しました。生産中に投げているのは

[ !EXCEPTION! ] NoMethodError: undefined method 'content_tag' for Haml::Filters::Redcarpet:Module 

なぜでしょうか?または私は何を確認することができますか?私は生産現場でコンソールを走らせて、TagHelperを組み込み、それらの方法を使用することができました。困った...

+0

/config/environments/production.rbファイルとdevelopment.rbファイルの両方を投稿してください。この2つの環境に違いがあり、問題が発生している可能性があります。 – jefflunt

+0

私は2つの設定でパスタを作る。 http://pastie.org/2142973 – brewster

+0

また、開発環境はOSX/WEBrickで、プロダクションはDebian/Passengerです – brewster

答えて

1

私の推測では、開発環境のプロダクションボックスに1つ以上の宝石のバージョンが異なると思います。両方で "gem list"を実行し、元の投稿に結果を追加します。

この問題を回避する最良の方法は、Ruby Version Manager(RVM)と 'bundler' gemを使用することです。プロジェクト固有のgemsetを作成して、両方のバージョンでGemsが完全に同じであることを確認できます(プロ& dev)プロジェクトの。

RVM:https://rvm.io

バンドラ:http://gembundler.com/

ああ - あなたはあなたのスタックトレースを見下ろす場合は、おそらくこれはおそらく、HAML/redcarpetものを設定します宝石への参照が表示されますすなわち、異なるバージョンを持っています。