2011-06-13 16 views
5

Modellerimle act_as_list kullanmayı başardım (bu oldukça kolaydı) tek tek, ama şimdi bir sorunum var.Raylar - Farklı Modeller ile acts_as_list

Uygulamamda 3 model var: Facility, Service ve Activity. Sendikalarında acts_as_list kullanmam gerekiyor ... bunu yapmak mümkün mü?

sorum

cevap

3

Bir polimorfik dernek ile dördüncü modeli kullanmak gerekir, o zaman bu listeyi koymak açıktır Umut. Şimdi http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

şeklinde görünen bir sınıf var isteyeceksiniz:

Öncelikle bunu anlamak için polimorfik dernekler kadar okumak

class Position < ActiveRecord::Base 
    belongs_to :positionable, polymorphic: true 
end 

Ve şöyle bir göç:

: diğer modellerin her biri üzerinde Sonra
class CreatePositions < ActiveRecord::Migration 
    def change 
    create_table :position do |t| 
     t.integer :positionable_id 
     t.string :positionable_type 
     t.timestamps 
    end 
    end 
end 

Bu eklenti

class Facility < ActiveRecord::Base 
    has_one :position, as: :positionable 
    # ... 
end 
+1

Genel yapıda biraz genişleyebilir misiniz? Positionable_id ile bir Konum modeliniz var. Öyleyse diğer üç modelde_on var:, pozisyonlanabilir? – Galaxy

+0

Bu beni doğru yola koydu! Parlak. – Galaxy

+0

fyi, Ryan bates konuyla ilgili bir demiryoluna sahipti: http://railscasts.com/episodes/154-polymorphic-association-revised –

İlgili konular