Supongo que tiene dos modelos: artista y evento.
Quiere tener una relación habtm entre ellos y quiere poder definir un orden de eventos para cada artista.
Aquí está mi solución. Estoy escribiendo este código de mi cabeza, pero una solución similar funciona en mi caso. Estoy bastante seguro de que hay margen de mejora.
Estoy usando el complemento de carriles acts_as_list.
Así es como me gustaría definir modelos:
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
Como se puede ver que necesita un modelo ArtistEvent adicional, uniéndose a los otros dos. La tabla artist_events debe tener dos ID extranjeros y una posición de columna adicional.
Ahora puede utilizar acts_as_list métodos (en el modelo ArtistEvent, por desgracia), pero algo así como
Artist.find (: id) .events
debería darle una lista de eventos que pertenecen al artista específico en correcta orden.
¿Podría ser más específico? ¿Qué estás tratando de lograr exactamente? También un enlace al plugin que encontraste sería agradable. – EmFi
Cuando busqué el complemento, encontré uno más nuevo que podría usar: http://github.com/SFEley/habtm_list Estoy tratando de lograr el orden de los artistas en los eventos: por ejemplo, vaya a un concierto con un techo y dos abridores. Me gustaría que muestre el orden en el que los artistas están jugando. – mculp