6

HAMLで簡単なカスタムフィルターを作成しましたが、Railsアプリでそれを見つけることができません。

フィルタは次のようになります。

# lib/haml/filters/gfmarkdown.rb
module Haml::Filters::Gfmarkdown
  include Haml::Filters::Base

  # copied from Haml::Filters::Markdown
  lazy_require 'rdiscount', 'peg_markdown', 'maruku', 'bluecloth'

  def render(text)
    # copied from Haml::Filters::Markdown
    engine = case @required
             when 'rdiscount'
               ::RDiscount
             when 'peg_markdown'
               ::PEGMarkdown
             when 'maruku'
               ::Maruku
             when 'bluecloth'
               ::BlueCloth
             end
    engine.new(gfm text).to_html  # gfm method defined elsewhere
  end
end

私の見解では、私はこのフィルターを次のように使用しようとしています。

:gfmarkdown
  #{comment.body}

しかし、私はこのエラーメッセージを受け取ります:Filter "gfmarkdown" is not defined.

Railsアプリにフィルターを取得させる方法はありますか?

バージョン:Rails 2.3.4、Haml2.2.15。

4

1 に答える 1

3

解決策を見つけました。フィルターを必要とする初期化子を追加します。

# config/initializers/gfmarkdown.rb
require 'haml/filters/gfmarkdown'

lib/モジュール階層がファイルパスと一致する場合、モジュールは自動的に必要になると思っていました。しかたがない ;)

于 2009-12-17T15:52:38.693 に答える