从Rails Gem为视图提供新方法的正确方法是什么?

时间:2012-03-23 11:42:39

标签: ruby-on-rails actionview

如果我想创建一个新的rails gem,为Rails视图添加方法,那么正确的方法是什么?它是否扩展ActionView :: Base?它会以某种方式涉及ApplicationHelper吗?

1 个答案:

答案 0 :(得分:6)

许多gem作者创建了一个模块来定义他们的视图助手方法,然后将它们包含在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