¿Hay alguna manera de anular uno de los métodos proporcionados por una asociación ActiveRecord?Rieles: Reemplazando el método de asociación ActiveRecord
decir, por ejemplo tengo el siguiente has_many típica polimórfica: a través de la asociación:
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
Como usted probablemente sabe esto se suma una gran cantidad de métodos asociados al modelo de historia como etiquetas, etiquetas < <, etiquetas = , tags.empty ?, etc.
¿Cómo hago para anular uno de estos métodos? Específicamente las etiquetas < < método. Es bastante fácil anular los métodos de una clase normal, pero parece que no puedo encontrar información sobre cómo anular los métodos de asociación. Hacer algo como
def tags<< *new_tags
#do stuff
end
produce un error de sintaxis cuando se llama por lo que obviamente no es tan simple.
¿Qué estás tratando de hacer esto? Esto podría terminar rompiendo otras funcionalidades de ActiveRecord, y probablemente haya una mejor manera de hacer lo que está intentando – Gareth