有没有一种方法可以覆盖ActiveRecord关联提供的其中一个方法?
例如,假设我有以下典型的多态has_many:through关联:
class Story < ActiveRecord::Base
has_many :taggings, :as => :taggable
has_many :tags, :through => :taggings, :order => :name
end
class Tag < ActiveRecord::Base
has_many :taggings, :dependent => :destroy
has_many :stories, :through => :taggings, :source => :taggable, :source_type => "Story"
end
你可能知道这会给Story模型添加一整套相关的方法,例如tags、tags<<、tags=、tags.empty?等。
我该如何覆盖其中的一个方法?特别是tags<<方法。覆盖普通类方法相当容易,但是我找不到有关如何覆盖关联方法的任何信息。尝试这样做:
def tags<< *new_tags
#do stuff
end
当调用它时会产生语法错误,所以显然并不简单。