我有一套我经常使用的rails视图帮助程序,我想把它们打包成一个gem,这样我就可以在gem文件中放一行,并从我的视图中访问这些帮助程序.

在使用Bundler和Jeweler之前,我已经创建了gems,但是,我并不完全清楚如何在gem中组织Rails视图帮助程序,并将它们包含到Rails中.

如果有任何关于如何为Rails 3实现这一点的最新教程的提示或链接,我将不胜感激

谢谢

只是想澄清一下:问题不在于"如何创造一块Ruby ".它是"如何在gem中打包视图助手,以便在Rails中使用它们"

编辑2:

推荐答案

在我看来,对于这项任务来说,满分Engine分是多余的.相反,您可以创建一个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
      ActiveSupport.on_load(:action_view) { include MyGem::ViewHelpers }
    end
  end
end

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

Ruby-on-rails相关问答推荐

Rails Routing:在具有自己的路由的名称空间下组织路由

仅当未在带有ENV[';Dyno';]的Heroku问题上运行时才初始化Sidekiq Cron

Rails 7.1中的覆盖脚手架控制器

DELETE_IF和REJECT的意外行为!方法

带有data-turbo的rails`link_to‘未获得turbo_stream请求格式

Ruby on Rails 身份验证:设计注册不起作用

Rails 7 中的预编译

Sweet Alert 2 在 Rails 7 应用程序中无法正常工作

线程如何在 Web 应用程序中工作?

Selenium chromedriver:无法从不可键入的键构造KeyEvent

您将如何在 Ruby on Rails 应用程序中使用 rSpec 测试观察者?

$redis 全局变量与 ruby​​ on rails

具有条件的列的计数器缓存?

如何在 Rails 上生成 AuthenticityToken

带有查询字符串参数的 Rails 动作缓存

Groovy/Grails :: Ruby/Rails :: 2011 框架状态

测试和规格有什么区别?

简单的 rails rake 任务拒绝运行并出现错误不知道如何构建任务,为什么?

是否可以输出rake db:migrate产生的 SQL 更改脚本?

为什么 rails bootstrap 这么慢,我该怎么办?