Tôi giả sử rằng bạn có hai mô hình - Nghệ sĩ và Sự kiện.
Bạn muốn có mối quan hệ giữa chúng và bạn muốn có thể xác định thứ tự sự kiện cho từng nghệ sĩ.
Đây là giải pháp của tôi. Tôi đang viết mã này từ đầu của tôi, nhưng giải pháp tương tự hoạt động trong trường hợp của tôi. Tôi khá chắc chắn có một phòng để cải thiện.
Tôi đang sử dụng plugin actions_as_list.
Đó là cách tôi sẽ xác định mô hình:
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
Như bạn thấy bạn cần một mô hình ArtistEvent bổ sung, tham gia hai người kia. Bảng artist_events phải có hai id nước ngoài và cột - vị trí bổ sung.
Bây giờ bạn có thể sử dụng phương pháp acts_as_list (trên mô hình ArtistEvent, không may) nhưng cái gì đó như
Artist.find (: id) .events
nên cung cấp cho bạn một danh sách các sự kiện thuộc nghệ sĩ cụ thể trong đúng gọi món.
Nguồn
2010-02-16 20:48:51
Bạn có thể cụ thể hơn không? Chính xác là bạn đang cố đạt được điều gì? Ngoài ra một liên kết đến các plugin bạn tìm thấy sẽ được tốt đẹp. – EmFi
Khi tìm kiếm plugin, tôi đã tìm thấy một plugin mới hơn mà tôi có thể sử dụng: http://github.com/SFEley/habtm_list Tôi đang cố gắng thực hiện thứ tự của các nghệ sĩ tại các sự kiện - giả sử bạn truy cập một buổi hòa nhạc với một headliner và hai cụ mở. Tôi muốn cho nó thể hiện thứ tự mà các nghệ sĩ đang chơi. – mculp