2008-11-02 14 views
5

मेरे रेल ऐप में मेरे पास तीन मॉडल, प्रोजेक्ट्स, ब्लॉग पोस्ट और इमेज हैं। प्रोजेक्ट्स और ब्लॉगपोस्ट में कई लिंक की गई छवियां हो सकती हैं और एक छवि को किसी प्रोजेक्ट, ब्लॉगपोस्ट या दोनों से जोड़ा जा सकता है।रेल संघों, habtm? बहुरूपी? दोनों?

रेल में यह काम करने के लिए एसोसिएशन स्थापित करने का सबसे अच्छा तरीका क्या है?

उत्तर

9

मैं एक अलग मॉडल वर्ग, छवि लिंक में habtm चिढ़ा होगा। तो फिर तुम मिल चाहते हैं:

Project 
    has_many :image_links, :as => :resource 
BlogPost 
    has_many :image_links, :as => :resource 
ImageLink 
    belongs_to :image 
    belongs_to :resource, :polymorphic => true 
Image: 
    has_many :image_links 
+2

यह वास्तव में नहीं है एक "बाहर छेड़ा" habtm, क्योंकि यह वास्तव में एक habtm (habtm-तालिका के रूप में ImageLink के साथ) के रूप में ही है, लेकिन इस विधि का लाभ यह है कि आप दो habtms एक में गठबंधन। –

+2

धन्यवाद, मैंने जोड़ा है Imany: एसोसिएशन के माध्यम से, इस प्रक्रिया में खोजना कि यह चीजों की छवि पक्ष से काम नहीं करता है, लेकिन इस मामले में इससे कोई फर्क नहीं पड़ता क्योंकि मैं केवल परियोजनाओं से जुड़ी छवियां प्राप्त करना चाहता हूं दूसरे रास्ते की तुलना में। – philnash

संबंधित मुद्दे