2011-06-13 78 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