Тип поля монгоид: Moped::BSON::ObjectId с раблом

Сценарий: Рельсы + Монгоид + Рабл

У меня есть классы, как

class User
   has_many :cards
   field    :name

и

class Card
   belongs_to :user
   field      :anotheruser, type:Moped::BSON::ObjectId

Я новичок в rabl, поэтому мой вопрос к вам, экспертам rabl, заключается в том, есть ли элегантный способ запросить объект «другого пользователя» через BSON: ObjectId прямо из rabl. Конечно, я могу творить магию в своем контроллере, но это была бы очень удобная функция, если бы она была доступна.

Спасибо.

P


person PasiT    schedule 15.03.2013    source источник


Ответы (1)


Ваши классы выглядят неправильно, должны выглядеть так

class User
  include Mongoid::Document
  has_and_belongs_to_many :cards
  field    :name

class Card
   include Mongoid::Document
   has_and_belongs_to_many :user

Вы должны иметь возможность использовать обычные отношения user.cards и cards.users

person hwatkins    schedule 15.03.2013
comment
Спасибо. Я (слишком) упростил свой вопрос и оставил Mongoid вне примера. Я могу использовать карты отношений ‹-› пользователя, без проблем. Проблема в том, что у меня есть другое поле с BSON:ObjectId, которое содержит идентификатор другого пользовательского объекта. Таким образом, фактическое отношение не указано. - person PasiT; 16.03.2013
comment
Я понимаю, что это можно рассматривать как недостаток дизайна, но поскольку Mongoid не в лучшем виде с отношениями «многие ко многим», я подумал, что это может быть альтернативный путь. - person PasiT; 16.03.2013
comment
Кроме того, возникает вопрос, как сделать такой запрос из рабл. - person PasiT; 16.03.2013