Как связать 3 таблицы с activerecord / rails? - PullRequest
0 голосов
/ 31 июля 2010

У меня определены 3 модели:

  • Палитра (имеет много образцов)
  • Образец (имеет один цвет)
  • Цвет (?)

Как определить таблицы / ассоциации, чтобы из объекта Палитры можно было собрать все цвета, например:

@colors = @palette.swatches.colors

(образцы в настоящее время хранят color_id, palette_id, а также некоторые связанные с нимиинформация, такая как sort_order и т. д.)

1 Ответ

0 голосов
/ 31 июля 2010

Я думаю, что вы получите желаемые результаты.

# palette table:
# id INT
class Palette < ActiveRecord::Base
    has_many :swatches
    has_many :colors, :through => :swatches
end

# swatch table:
# id INT
# palette_id INT
# color_id INT
class Swatch < ActiveRecord::Base
    belongs_to :palette
    belongs_to :color
end

Используя параметр :through, вы можете получить прямой доступ к цветам палитры.

@colors = @palette.colors
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...