Это приемлемо, но есть и другие способы, которые чище.Вы можете создать свою Meeting
модель следующим образом:
has_and_belongs_to_many :users, :as => :studens
belongs_to :tutor, :foreign_key => 'tutor_id', :class_name => 'User'
Ваша User
Модель:
has_and_belongs_to_many :meetings, :as => :meetings_taken
has_many :meetings_given, :foreign_key => 'tutor_id', :class_name => 'Meeting'
Так что вам понадобятся только две модели.
// edit
Для предложения, принятия, отклонения, .. Я хотел бы создать Invitation
Модель user_id:integer
(Приглашенный пользователь), meeting_id
(Благодаря этому вы знаете, кому разрешено приглашать других людей из-за собранияпринадлежит наставнику), status:string
(могут быть варианты с ожиданием, принятием и удалением), может быть explaination:text
(когда кто-то делает деликатес).