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