का उपयोग कर रेल 3 जटिल संघों में मैं एक फिल्म आधारित रेल अनुप्रयोग विकसित करने की कोशिश कर रहा हूं जिसमें एकाधिक क्षेत्रों (हॉलीवुड, बॉलीवुड इत्यादि) का समर्थन है। मैं कई क्षेत्रों को आवेदन में भाषाओं के रूप में बुलाता हूं।नेस्टेड_has_many_through
प्रत्येक भाषा का अपना डेटा सेट होता है यानी, अंग्रेजी में हॉलीवुड से संबंधित सभी फिल्में हैं और भाषा हिंदी में बॉलीवुड से संबंधित सभी फिल्में हैं।
भाषा मॉडल
class Language < ActiveRecord::Base
has_many :movies
has_many :cast_and_crews, :through => :movies, :uniq => true
has_many :celebrities, :through => :cast_and_crews, :uniq => true
# FIXME: Articles for celebrities and movies
has_many :article_associations, :through => :celebrities
has_many :articles, :through => :article_associations, :uniq => true
end
यहाँ फिल्मों और मशहूर हस्तियों दोनों article_association वर्ग का उपयोग कर लेख है।
मूवी मॉडल
class Movie < ActiveRecord::Base
belongs_to :language
has_many :cast_and_crews
has_many :celebrities, :through => :cast_and_crews
has_many :article_associations
has_many :articles, :through => :article_associations, :uniq => true
end
सेलिब्रिटी मॉडल
class Celebrity < ActiveRecord::Base
has_many :cast_and_crews
has_many :movies, :through => :cast_and_crews, :uniq => true
has_many :article_associations
has_many :articles, :through => :article_associations, :uniq => true
end
class ArticleAssociation < ActiveRecord::Base
belongs_to :article
belongs_to :celebrity
belongs_to :movie
end
और यह कैसे मेरी अनुच्छेद मॉडल परिभाषित किया गया है है
class Article < ActiveRecord::Base
has_many :article_associations
has_many :celebrities, :through => :article_associations
has_many :movies, :through => :article_associations
end
जो मैं हासिल करने की कोशिश कर रहा हूं वह भाषा है। कार्टिकल को हस्तियों और फिल्मों से संबंधित सभी लेख वापस करना चाहिए।
कारण मैं SQL का उपयोग नहीं कर रहा हूं find_by_sql ActiveRelation का समर्थन नहीं करता है और मैं has_scope कार्यक्षमता का उपयोग नहीं कर पाऊंगा।
मैं nested_has_many_through, has_scope और inherited_resources जवाहरात
किसी भी मदद इस में बहुत सराहना की जाएगी उपयोग कर रहा हूँ।
एक तरफ ध्यान दें के रूप में, क्षेत्र का प्रतिनिधित्व करने वाले के रूप में भाषा एक सा जटिल है। क्या होगा अगर एक भारतीय फिल्म अंग्रेजी में है? अवधारणाओं को विभाजित करें। –
अगर मैं दीवार समझता हूं, तो आपकी परेशानी नेस्टेड है_मनी से नहीं आती है: इसके माध्यम से (आपके पास यह मणि है), लेकिन इस तथ्य से कि आप 2 स्रोतों (फिल्मों और हस्तियों) से लेख प्राप्त करना चाहते हैं? क्या आपने समस्या को उलट करने का प्रयास किया है? भाषा में has_many संबंध परिभाषित नहीं है, लेकिन अनुच्छेद में एक लैम्ब्डा गुंजाइश परिभाषित? हालांकि इसमें कुछ एसक्यूएल शामिल हो सकता है। – MrRuru
@MrRuru आप सही हैं। मुझे nested_has_many_through मणि के साथ कोई समस्या नहीं है। यह वही करता है जो वादा करता है। इसके अलावा आप सही हैं कि मेरे पास लेखों के लिए कई स्रोत हैं, जैसे फिल्में और हस्तियां। मैं एसक्यूएल आधारित स्कोप से बचने की कोशिश कर रहा हूं क्योंकि एसक्यूएल आधारित गुंजाइश मुझे एक सक्रिय रिलेशनशिप इंस्टेंस नहीं लौटाती है और मैं उन अन्य स्कोपों के लिए आवश्यक स्कॉप्स को चेन करने में सक्षम नहीं हूं जिन्हें मैं i.e., विरासत_resources का उपयोग करता हूं। सुझाव के लिए –