1

只是想学习一些创建 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 并打印出来!在日志中

before_filter :fun_before_filter 

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

因此,要从中创建一个宝石...

  1. 我相信我应该以其他方式设置这个 before_filter,但不知道该怎么做。
  2. 我相信这个初始化程序应该被移动到 lib 目录并以某种方式使用 rails 应用程序自动加载。

这些信念是否正确,如果正确,我该怎么做?

4

1 回答 1

0

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

至于制作一个前置过滤器......这通常不是最好的解决方案,而且很难从样本中准确地看出你想要完成什么。gems 将行为添加到请求/响应周期中的一种更习惯的方法是添加一个Rack 中间件,它让用户的控制器独立。

于 2012-10-04T05:31:33.220 回答