首页 > 解决方案 > 是否可以从 haml 文件中访问模块?

问题描述

我想将我的助手分类到子模块中,以使代码更清晰。例如,我想实现这样的东西:

= UI.spawn_component(UI.alert, UI.error, "message")

我已经尝试在我的帮助模块中创建一个模块,如下所示:

module StyleguideHelper
  module UI
    def spawn_component(user, type)
      return user
    end
  end
end

而且我还尝试在不同的文件中创建模块,并从我的帮助文件中要求它。这两个都没有用。

标签: ruby-on-railsrubyhaml

解决方案


首先,确保文件命名正确,以便自动加载正常工作。如果调用模块,StyleguideHelper则文件必须命名为 styleguide_helper.rb. app/helpers除非您设置了用于自动加载的库,否则我会将这个文件放入其中。在该文件中定义您的模块,如下所示:

module StyleguideHelper
  module UI
    def self.spawn_component(user, type)
      return user
    end
  end
end

然后,您应该能够在您的视图中使用帮助程序,如下所示:

= StyleguideHelper::UI.spawn_component(user, type)

推荐阅读