如何将Rails 3初始化模块制作成gem

时间:2012-10-04 04:49:25

标签: ruby-on-rails ruby-on-rails-3 rubygems gem

试着学习一些创建宝石的基础知识。现在我已经创建了一个看起来像......的初始化器。

# config/initializers/fun_logger.rb
module FunLogger
  def fun_before_filter
    logger.info("\n\n\nGOT IT!\n\n\n")
  end
end

ActionController::Base.send(:include, FunLogger)

这允许我将以下内容添加到我的ApplicationController中,并打印出GOT IT!在日志中

before_filter :fun_before_filter 

所以我想弄清楚一些事情。

所以要创建一个宝石...

  1. 我相信我应该以另一种方式设置这个before_filter, 但不知道该怎么做。
  2. 我相信这个初始化程序应该是 移动到lib目录并使用rails app以某种方式自动加载。
  3. 这些信念是否正确,如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:0)

您想查看Railties。这将使您的gem运行初始化程序,或者您可能想要完成的任何其他Rails特定的事情。

至于制作一个过滤器......这通常不是最好的解决方案,而且很难从样本中准确地告诉你要完成什么。宝石在请求/响应周期中添加行为的一种更常用的方法是添加Rack middleware,这样就可以单独留下用户的控制器。