Rails - как бы вы установили эти отношения HABTM - PullRequest
0 голосов
/ 17 февраля 2011

У меня есть ситуация, когда Project может иметь много Tags (и наоборот), поэтому я установил отношения has_and_belongs_to_many между ними.

Мой вопрос такой: мне нужнопроект, который может нести одну текущую метку.

вариант 1

Могу ли я добавить tag_id в мою таблицу Project?Как правильно установить отношения, если уже существует модель projects_tags?

Вариант 2

Я полагаю, что неэффективно иметь модель projects_tags с логическим значениемcurrent, потому что на практике мне потребуются дополнительные запросы, чтобы найти правильные отношения.Я просто выбрасываю это как альтернативу, которую я рассмотрел.

1 Ответ

0 голосов
/ 17 февраля 2011

Вы можете использовать что-то вроде этого:

class Project < ActiveRecord::Base
  belongs_to :current_tag, :class_name => Tag
end

И тогда в вашем projects столе будет current_tag_id.

Вы не можете добавить current к projects_tags, потому что технически это не модель: это всего лишь таблица соединений. Вы должны будете включить другую модель и использовать has_many :through, чтобы сделать это таким образом.

...