Ruby on rails 在初始化之后,从不通过mixin在Rails 3中调用

Ruby on rails 在初始化之后,从不通过mixin在Rails 3中调用,ruby-on-rails,ruby,activerecord,mixins,Ruby On Rails,Ruby,Activerecord,Mixins,我正在使用mixin向我的模型(Person)添加一些功能。在mixin中,我需要进行一些初始化,因此我尝试使用“after_initialize”回调宏来调用初始化方法。模型(Person)只是一些其他模型的基类 我遇到的问题是,它从未被调用过。我试图调试它,但断点从未被击中。日志记录也没有给我任何输出 我找不到任何帮助(根据Api文档和这里的一些帖子,这个构造应该在Rails3中工作) /lib/mymodule.rb /models/person.rb 请原谅我,因为我是RoR的“新手”

我正在使用mixin向我的模型(Person)添加一些功能。在mixin中,我需要进行一些初始化,因此我尝试使用“after_initialize”回调宏来调用初始化方法。模型(Person)只是一些其他模型的基类

我遇到的问题是,它从未被调用过。我试图调试它,但断点从未被击中。日志记录也没有给我任何输出

我找不到任何帮助(根据Api文档和这里的一些帖子,这个构造应该在Rails3中工作)

/lib/mymodule.rb

/models/person.rb

请原谅我,因为我是RoR的“新手”

多谢各位

致以最良好的祝愿, 托马斯

更新

重新启动本地应用程序服务器后,会出现以下异常:

ActionController::RoutingError(SequentialRecord:Module的未定义方法'after_initialize':

我假设这个回调不能用在mixin中?

试试类似的方法(未测试)

module MyModule
    after_initialize :generate_ids

    def generate_ids
      logger.info "invoked" #never hit
    end
end
require "mymodule"

class Person < ActiveRecord::Base
    include MyModule
end
class Customer < Person
  # nothing so far
end
# GET /customers/new
# GET /customers/new.json
def new
  @person = Customer.new

  respond_to do |format|
    format.html # new.html.erb
    format.json { render json: @customer }
  end
end
module MyModule
  def self.included(base)
    base.after_initialize :generate_ids
  end

  def generate_ids
    logger.info "invoked" #never hit
  end
end