Рельсы Тройной Ассоциации - PullRequest
0 голосов
/ 16 декабря 2010

Рассмотрим три модели. Пользователь, инвентарь и инвентарь предметов один.

Пользователь принадлежит к инвентарю. Инвентарь имеет одного пользователя. В инвентаре много предметов, а инвентарь принадлежит инвентарю. (я знаю, что у пользователя есть один инвентарь, вероятно, должно быть лучше, но я был менее осведомлен о ruby, когда делал свои ассоциации)

Теперь мне стало интересно, как лучше всего, скажем, проверить, есть ли у пользователя определенный предмет в его инвентаре.

Что ты думаешь? Может быть, вы также предложите мне изменить свои ассоциации? Я открыт для критики:)

1 Ответ

1 голос
/ 16 декабря 2010

Я думаю, вам следует использовать :through => ... вариант has_many.Например:

class User ...
  has_many :inventory_items, :through => :inventories 

  ...
end

Затем вы можете использовать find в коллекции inventory_items пользователя.

user = User.first
item = user.inventory_items.find(...)

Для получения дополнительной информации см. Rails api doc ActiveRecord::Associations::ClassMethods.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...