nol*_*oli 54 gem rubygems ruby-on-rails actionview ruby-on-rails-3
我有一组经常使用的rails视图助手,并希望将它们打包成一个gem,这样我就可以在我的Gemfile中添加一行,并从我的视图中访问帮助器.
我在使用Bundler和Jeweler之前创建了宝石,但是,我并不是很清楚如何在gem中组织Rails视图助手,并将它们包含在rails中.
我将非常感谢任何指针,或链接到有关如何为Rails 3执行此操作的最新教程
谢谢
只是为了澄清:问题不在于"如何创造宝石".它的"如何在gem中打包视图助手,所以我可以在Rails中使用它们"
编辑2:我也同意下面的海报..轨道引擎对于这种(希望简单的)要求太过分了
Mic*_*ley 90
在我看来,完整的引擎对于这项任务来说太过分了.你可以改为创建一个Railtie,它在初始化时将你的助手包含在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)
Run Code Online (Sandbox Code Playgroud)
此外,如果您想要只为Rails3版本包含帮助程序,您可以使用
# lib/my_gem.rb
require 'my_gem/railtie' if defined?(Rails::Railtie)
Run Code Online (Sandbox Code Playgroud)