2011-06-13 48 views
5

我設法使用act_as_list與我的模型(這很容易)一個接一個,但現在我有一個問題。Rails - acts_as_list與多個模型

在我的應用程序中有3個型號:FacilityServiceActivity。我需要在他們的工會上使用acts_as_list ...是否有可能這樣做?

希望我的問題是清楚的

回答

3

您應該使用第四個模型,多態關聯,再穿上該列表。

首先,閱讀了關於多態關聯明白這一點:http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

現在,你想有一個類,看起來像這樣:

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

而且看起來像這樣一個遷移:

class CreatePositions < ActiveRecord::Migration 
    def change 
    create_table :position do |t| 
     t.integer :positionable_id 
     t.string :positionable_type 
     t.timestamps 
    end 
    end 
end 

然後在其他每個模型的補充一點:

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

你可以在整體結構上稍微擴大一點嗎?像擁有Positionable模型一樣,使用positionable_id。那麼有其他三個模型have_one,可定位? – Galaxy 2012-05-10 04:16:57

+0

這讓我走上正軌!輝煌。 – Galaxy 2012-05-15 11:55:14

+0

fyi,ryan bates剛剛在主題上有一個railscast:http://railscasts.com/episodes/154-polymorphic-association-revised – 2012-05-23 18:39:13