我在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
Run Code Online (Sandbox Code Playgroud)
在我看来,我尝试使用这样的过滤器:
:gfmarkdown
#{comment.body}
Run Code Online (Sandbox Code Playgroud)
但我收到此错误消息: Filter "gfmarkdown" is not defined.
任何想法如何让我的Rails应用程序拿起我的过滤器?
版本:Rails 2.3.4,Haml 2.2.15.
我找到了解决方案:添加需要过滤器的初始值设定项。
# config/initializers/gfmarkdown.rb
require 'haml/filters/gfmarkdown'
Run Code Online (Sandbox Code Playgroud)
我曾认为lib/如果模块层次结构与文件路径匹配,则模块是自动必需的。那好吧 ;)