从Rails Gem获取新视图的正确方法是什么?

问题描述:

如果我想创建一个将方法添加到Rails视图的新rails rails,那么执行此操作的正确方法是什么?是否扩展ActionView :: Base?它会以某种方式涉及ApplicationHelper吗?从Rails 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 

Railtie方法:

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