Esiste un modo per sovrascrivere uno dei metodi forniti da un'associazione ActiveRecord?Rails: sovrascrivere il metodo di associazione ActiveRecord
diciamo per esempio ho il seguente has_many tipico polimorfa: attraverso l'associazione:
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
Come probabilmente sapete questo aggiunge tutta una serie di metodi associati al modello di storia come i tag, i tag < <, tag = , tags.empty ?, ecc.
Come ignorare uno di questi metodi? In particolare i tag < metodo <. È abbastanza semplice sovrascrivere un normale metodo di classe, ma non riesco a trovare alcuna informazione su come sovrascrivere i metodi di associazione. Fare qualcosa come
def tags<< *new_tags
#do stuff
end
produce un errore di sintassi quando viene chiamato così ovviamente non è così semplice.
A cosa stai cercando di fare questo? Questo potrebbe finire per rompere le altre funzionalità di ActiveRecord e probabilmente c'è un modo migliore per fare ciò che stai cercando. – Gareth