मुझे लगता है कि आपके पास दो मॉडल हैं - कलाकार और कार्यक्रम।
आप उनके बीच एक habtm संबंध चाहते हैं और आप प्रत्येक कलाकार के लिए घटनाओं का एक आदेश परिभाषित करने में सक्षम होना चाहते हैं।
मेरा समाधान यहां है। मैं अपने कोड से यह कोड लिख रहा हूं, लेकिन इसी तरह का समाधान मेरे मामले में काम करता है। मुझे यकीन है कि सुधार के लिए एक कमरा है।
मैं रेल कृत्यों_as_list प्लगइन का उपयोग कर रहा हूं।
कि मैं मॉडल कैसे परिभाषित करेंगे:
class Artist < ActiveRecord::Base
has_many :artist_events
has_many :events, :through => :artist_events, :order => 'artist_events.position'
end
class Event < ActiveRecord::Base
has_many :artist_events
has_many :artists, :through => :artist_events, :order => 'artist_events.position'
end
class ArtistEvent < ActiveRecord::Base
default_scope :order => 'position'
belongs_to :artist
belongs_to :event
acts_as_list :scope => :artist
end
आप आप एक अतिरिक्त मॉडल ArtistEvent की जरूरत है, अन्य दो में शामिल होने के रूप में देखते हैं। Artist_events तालिका में दो विदेशी आईडी और अतिरिक्त कॉलम - स्थिति होनी चाहिए।
अब आप acts_as_list विधियों (ArtistEvent मॉडल पर, दुर्भाग्य से) का उपयोग कर सकते हैं, लेकिन कुछ
तरह
Artist.find (: आईडी) .events
आप सही में विशिष्ट कलाकार से संबंधित घटनाओं की एक सूची देना चाहिए आदेश।
स्रोत
2010-02-16 20:48:51
क्या आप अधिक विशिष्ट हो सकते हैं? आप वास्तव में क्या हासिल करने की कोशिश कर रहे हैं? आपके द्वारा पाई गई प्लगइन का एक लिंक भी अच्छा होगा। – EmFi
प्लगइन की तलाश करते समय, मुझे एक नया मिला जो मैं उपयोग करने में सक्षम हो सकता हूं: http://github.com/SFEley/habtm_list मैं घटनाओं में कलाकारों के आदेश को पूरा करने की कोशिश कर रहा हूं - कहें कि आप यहां जाते हैं एक हेडलाइनर और दो सलामी बल्लेबाज के साथ एक संगीत कार्यक्रम। मैं चाहता हूं कि कलाकार उस क्रम को दिखाएंगे जिसमें कलाकार खेल रहे हैं। – mculp