2009-12-17 41 views
6

我寫了一個簡單的custom filter in HAML,但我無法讓我的Rails應用程序找到它。如何編寫HAML自定義過濾器?

過濾器看起來是這樣的:

# 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,Haml 2.2.15。

回答

3

我發現解決方案:添加一個需要過濾器的初始化程序。

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

我原以爲在lib/模塊進行自動要求如果模塊的層次結構相匹配的文件路徑。好吧;)

相關問題