是否可以从haml文件中访问模块?

时间:2019-03-22 16:27:07

标签: ruby-on-rails ruby haml

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

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

我已经尝试过像这样在助手模块中创建一个模块:

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

我还尝试在其他文件中创建模块,并从我的帮助文件中要求它。这两个都不起作用。

1 个答案:

答案 0 :(得分:1)

首先,请确保正确命名文件,以便自动加载正常进行。如果模块名为StyleguideHelper,则文件必须命名为styleguide_helper.rb。除非您已将lib设置为自动加载,否则我会将其放置在app/helpers中。像这样在该文件中定义模块:

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

然后您应该可以在视图中使用该帮助器,如下所示:

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