2010-11-21 2 views
0

Это домашнее задание, только так, что упомянуто.Ruby on Rails отношения

У меня есть проект под названием AdventCalendar, который должен быть Календарь пришествия (очевидно). Я позволил войти в систему/выйти из системы или создать новых пользователей. После входа в систему вы можете создавать календари (календари Advent). Каждый календарь имеет много дней, и день принадлежит одному календарю. Кроме того, пользователь может создавать множество календарей.

Итак, я хочу, чтобы пользователь мог поделиться своими календарями с другими пользователями, если захочет. Я как бы застрял и не знаю, куда идти отсюда. Я подумал, может добавить

has_and_belongs_to_many :users 

в календаре, а также:

has_and_belongs_to_many :calendars 

пользователей ..

Я просто не знаю, как это осуществить. Любые советы или помощь приветствуются!

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

ответ

2

Да, вы прямо здесь. Хотя я думаю, что это немного менее сложно. Календари не должны иметь много пользователей. Отношения, иерархически в порядке, просто у пользователей есть календари. Затем, для календарей, создайте таблицу полиморфного соединения, чтобы позволить календарю иметь много пользователей, связанных с ними.

#user.rb 

has_many :calendars 


#calendar.rb 

belongs_to :many_users, :polymorphic => true 
has_many :users, :as => :many_users 

Ваш календарь таблица должна иметь many_users_id, и user_id поле.

Смежные вопросы