为什么模型的创建方法不同,这取决于它是直接调用还是通过关联调用?

时间:2012-12-02 12:02:24

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

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

note.rb

def self.create p
    p 'in self.create'
    super p
end

user.rb

has_many :notes

每当我拨打Note.create时,它就会运行。但是,如果我在create之类的关联上调用current_user.notes.create,则无法运行。那是为什么?

1 个答案:

答案 0 :(得分:2)

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

user.rb:

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