Ich gehe davon aus, dass Sie zwei Modelle haben - Künstler und Event.
Sie möchten eine Beziehung zwischen ihnen haben und Sie möchten eine Reihenfolge der Ereignisse für jeden Künstler definieren können.
Hier ist meine Lösung. Ich schreibe diesen Code von meinem Kopf, aber eine ähnliche Lösung funktioniert in meinem Fall. Ich bin mir ziemlich sicher, dass es Raum für Verbesserungen gibt.
Ich verwende Rails Acts_as_list Plugin.
So habe ich Modelle definieren würde:
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
Wie Sie sehen Sie benötigen ein zusätzliches Modell ArtistEvent, die beiden anderen verbinden. Die Tabelle artist_events sollte zwei fremde IDs und eine zusätzliche Spaltenposition haben.
Jetzt können Sie acts_as_list Methoden (auf ArtistEvent Modell, leider) verwenden, aber so etwas wie
Artist.find (: id) .events
sollten Sie eine Liste der Ereignisse geben, die zu bestimmten Künstler in der richtigen Auftrag.
Können Sie genauer sein? Was genau willst du erreichen? Auch ein Link zu dem gefundenen Plugin wäre nett. – EmFi
Als ich nach dem Plugin suchte, fand ich einen neueren, den ich vielleicht verwenden könnte: http://github.com/SFEley/habtm_list Ich versuche, die Reihenfolge der Künstler bei Veranstaltungen zu erreichen - sagen Sie gehen zu ein Konzert mit einem Headliner und zwei Openern. Ich möchte, dass die Reihenfolge angezeigt wird, in der die Künstler spielen. – mculp