我已经写了一个简单的custom filter in 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,Haml 2.2.15。
发布于 2009-12-17 23:52:39
我已经找到了解决方案:添加一个需要过滤器的初始化器。
# config/initializers/gfmarkdown.rb
require 'haml/filters/gfmarkdown'我曾认为,如果模块层次结构与文件路径匹配,则lib/中的模块是自动必需的。哦,好吧;)
https://stackoverflow.com/questions/1921777
复制相似问题