如何将Rails视图助手提取到gem中?

我有一套经常使用的rails视图助手,想将它们打包成一个gem,这样我就可以把一行放入我的Gemfile中,并且可以从我的视图中访问helpers。

在使用Bundler和Jeweler之前,我已经创build了gem,然而,我并不清楚如何在gem中组织Rails视图助手,并将它们包含在rails中。

我将不胜感激任何指针,或链接到最新的教程如何做到这一点的Rails 3

谢谢

只是为了澄清:问题不在于“如何创造gem”。 它的“如何在一个gem中包装视图助手,所以我可以在Rails中使用它们”

编辑2:我也同意下面的海报..一个铁轨引擎是太多矫枉过正这种(希望简单)要求

在我看来,一个完整的引擎是这个任务矫枉过正。 你可以创build一个Railtie ,它包括你的助手在初始化时join到ActionView :: Base中。

# lib/my_gem/view_helpers.rb module MyGem module ViewHelpers def pre(text) content_tag :pre, text end def another_helper # super secret stuff end end end # lib/my_gem/railtie.rb require 'my_gem/view_helpers' module MyGem class Railtie < Rails::Railtie initializer "my_gem.view_helpers" do ActionView::Base.send :include, ViewHelpers end end end # lib/my_gem.rb require 'my_gem/railtie' if defined?(Rails) 

另外如果你想只包含Rails3版本的帮手,你可以使用

 # lib/my_gem.rb require 'my_gem/railtie' if defined?(Rails::Railtie) 

你可能要找的是一个引擎 。 一个引擎是一个包含导轨应用程序块(实际上,导轨应用本身就是一个引擎)的gem。