क्या ActiveRecord एसोसिएशन द्वारा प्रदान की गई विधियों में से एक को ओवरराइड करने का कोई तरीका है?रेल: ActiveRecord एसोसिएशन विधि ओवरराइडिंग
कहते हैं, उदाहरण के लिए मैं निम्नलिखित ठेठ बहुरूपी has_many है: संघ के माध्यम से:
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
कि आप जानते ही इस टैग की तरह कहानी मॉडल के लिए संबद्ध तरीकों की एक पूरी धसान कहते हैं, टैग < <, टैग = , tag.empty ?, आदि
मैं इन तरीकों में से किसी एक को ओवरराइड करने के बारे में कैसे जा सकता हूं? विशेष रूप से टैग < < विधि। सामान्य वर्ग विधियों को ओवरराइड करना बहुत आसान है, लेकिन मुझे एसोसिएशन विधियों को ओवरराइड करने के बारे में कोई जानकारी नहीं मिल रही है।
def tags<< *new_tags
#do stuff
end
एक वाक्यविन्यास त्रुटि उत्पन्न करता है जब इसे कहा जाता है तो यह स्पष्ट रूप से इतना आसान नहीं है।
आप इसके लिए क्या करने की कोशिश कर रहे हैं? यह अन्य ActiveRecord कार्यक्षमता को तोड़ने को समाप्त कर सकता है, और आप जो भी कोशिश कर रहे हैं उसे करने का शायद एक बेहतर तरीका है – Gareth