Ruby on rails 为什么模型是';s create方法不同,这取决于它是直接调用还是通过关联调用?

Ruby on rails 为什么模型是';s create方法不同,这取决于它是直接调用还是通过关联调用?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,如果我向模型的create方法添加了一些内容 注.rb def self.create p p 'in self.create' super p end has_many :notes user.rb def self.create p p 'in self.create' super p end has_many :notes 每当我调用Note.create时,它就会运行。但是如果我对关联调用create,比如current\u user.notes.

如果我向模型的
create
方法添加了一些内容

注.rb

def self.create p
    p 'in self.create'
    super p
end
has_many :notes
user.rb

def self.create p
    p 'in self.create'
    super p
end
has_many :notes

每当我调用
Note.create
时,它就会运行。但是如果我对关联调用
create
,比如
current\u user.notes.create
,它不会运行。这是为什么?

要重新定义关联
create
方法,您可以使用新的
create
方法将块传递给
具有许多关联:

user.rb:

has_many :notes do
  def create
    p '123'
    super
  end
end