如何在Rails项目中添加自定义Haml助手?

时间:2011-09-23 16:16:14

标签: ruby-on-rails haml helper

我已经创建了Haml助手并将其作为文件放在路径app / helpers / haml_helper.rb

module Haml::Helpers
  def build_segment(files)
    files.each do |f|
      if f[:dir] == nil
        haml_tag :li do
          haml_tag :a, :class=>"file", :href=>f[:name] do
            f[:name]
          end
        end
      else
        haml_tag :li do
          haml_tag :a, :class=>"folder", :href=>f[:name] do
            f[:name]
          end
        end
        haml_tag :ul do
          build_segment(f[:dir])
        end
      end
    end
  end
end

但后来我遇到了一个错误:

LoadError in SourceFilesController#index
Expected /home/megas/Work/read_the_code/app/helpers/haml_helper.rb 
to define HamlHelper

SourceFilesController #index是一个将使用此自定义帮助程序的操作。

如何向项目添加自定义haml助手?

1 个答案:

答案 0 :(得分:0)

所以,当你有haml_helper.rb时,它希望它定义HamlHelper ....但你想要Haml :: Helper。所以:

/helpers/haml/helpers

具有命名空间控制器时也是如此。 Admin :: CustomersController位于app / controllers / admin / customers_controller.rb