Связывание нескольких моделей с моделью - PullRequest
0 голосов
/ 21 августа 2011

давайте сначала посмотрим на мою схему базы данных, это простая структура таблиц базы данных:

page table (id, title, description, link)
post table (id, body)
list table (id, name)
user table (id, uname, upawd)
tag table  (id, name)

tag_item (tag_id, item_id, item_type) 

Строка данных таблицы tag_item будет выглядеть следующим образом.

tag_id   item_id    item_type    
1        1          page 
1        2          page 
1        1          post  
2        1          user 
3        1          list 

Поле item_type и item_id в таблице tag_item в качестве имени связанной таблицы и идентификатора первичного ключа таблицы, другими словами, я хочу использовать тег в качестве ключевого слова для связи всех таблиц.Итак, как написать код в отдельном классе модели, чтобы связать друг друга с тегом.Как спроектировать ассоциацию в классе модели с рельсами.

Заранее спасибо.

1 Ответ

1 голос
/ 21 августа 2011

Вы можете использовать has_many :through для реализации ассоциаций:

class Type < ActiveRecord::Base 
    has_many :tag_items
    has_many :tags, :through => :tag_items
end

class Tag < ActiveRecord::Base  
    has_many :tag_items
    has_many :types, :through => :tag_items
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...