Rails - act_as_list с несколькими моделями - PullRequest
7 голосов
/ 13 июня 2011

Мне удалось использовать act_as_list с моими моделями (это было довольно легко), но теперь у меня проблема.

В моем приложении есть 3 модели: Facility, Service и Activity. Мне нужно использовать acts_as_list для их объединения ... это можно сделать?

Надеюсь, мой вопрос ясен

1 Ответ

5 голосов
/ 10 мая 2012

Вы должны использовать четвертую модель с полиморфной ассоциацией, а затем поместить в нее список.

Во-первых, прочитайте о полиморфных ассоциациях, чтобы понять это: 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
...