Rails - 使用多个模型的acts_as_list

时间:2011-06-13 11:46:49

标签: ruby-on-rails acts-as-list

我已经设法使用act_as_list逐个使用我的模型(这很容易),但现在我遇到了问题。

在我的应用中有3种型号:FacilityServiceActivity。我需要在他们的联盟上使用acts_as_list ......是否可以这样做?

希望我的问题很清楚

1 个答案:

答案 0 :(得分:5)

您应该使用具有多态关联的第四个模型,然后将列表放在该模型上。

首先,阅读多态关联以了解这一点: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