如何在Rails Gem中使新方法对视图可用?

5

如果我想创建一个新的Rails宝石(gem),以向Rails视图添加方法,正确的做法是什么?是扩展ActionView::Base吗?是否涉及ApplicationHelper?

1个回答

7
许多宝石作者创建一个模块,定义他们的视图帮助方法,然后将它们包含在ActionView::Base中。
module MyGem
  module ActionViewExtensions
    module MyHelpers
      def my_view_helper
        # ...
      end
    end
  end
end
# You can do this here or in a Railtie
ActionView::Base.send :include, MyGem::ActionViewExtensions::MyHelpers

铁路联结方法:

https://github.com/mynameisrufus/sorted/blob/master/lib/sorted/railtie.rb

替代方案:

https://github.com/plataformatec/simple_form/blob/master/lib/simple_form/action_view_extensions/form_helper.rb


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接