2009-12-17 17 views
6

मैंने एक साधारण custom filter in HAML लिखा है लेकिन मुझे यह खोजने के लिए मेरा रेल ऐप नहीं मिल रहा है।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.

कोई विचार मैं अपने फ़िल्टर को लेने के लिए अपने रेल ऐप कैसे प्राप्त कर सकता हूं?

संस्करण: रेल 2.3.4, हैमल 2.2.15।

उत्तर

3

मुझे समाधान मिला है: एक प्रारंभकर्ता जोड़ें जिसमें फ़िल्टर की आवश्यकता है।

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

मैंने सोचा था कि lib/ में मॉड्यूल ऑटो की जरूरत थी अगर मॉड्यूल पदानुक्रम फ़ाइल पथ मेल नहीं खाते। ओह ठीक है;)

संबंधित मुद्दे