Помещение всего в модель отношений или добавление новой модели - PullRequest
1 голос
/ 22 апреля 2011

Я следовал учебнику Майкла Хартла Rails Tutorial и создал пользовательскую систему, работающую через таблицу отношений, с follower_id и followed_id.

Я хочу добавить еще одну связь, на этот разсистема поддержки.Будет ли лучше добавить столбец в таблицу отношений и использовать его, или мне следует создать новую модель для хранения предпочтительных отношений?

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

Я не думаю, что есть определенный ответ на ваш вопрос.

Но для простоты я бы хотел использовать только одну Connection таблицу с флагами

  • is_followed
  • is_favorite

Особенно, если вы можете только избирать подписанных людей, проверка становится намного проще.Все еще позволяет легкие аксессуары в вашей модели

class Person < ActiveRecord::Base

  ...

  has_many :favorites, :through => :connections, :conditions => { :is_favorite => true }, :source => ...
  has_many :followers, :through => :connections, :conditions => { :is_followed => true }, :source => ...
  has_many :followee,  :through => :connections, :conditions => { :is_followed => true }, :source => ...
0 голосов
/ 22 апреля 2011

и, кстати, отношение внешнего ключа, которое вы можете объявить, это то, что вы должны написать t.reference: user в любимом файле миграции, если вы хотите, чтобы внешний ключ пользователя был столбцом в любимой таблице

...