我已经设法使用act_as_list
逐个使用我的模型(这很容易),但现在我遇到了问题。
在我的应用中有3种型号:Facility
,Service
和Activity
。我需要在他们的联盟上使用acts_as_list
......是否可以这样做?
希望我的问题很清楚
答案 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