Зная родителей из объекта - PullRequest
       28

Зная родителей из объекта

0 голосов
/ 08 октября 2009

Учитывая это:

@article = Article.first(:joins => :category)

Предоставляет ли ActiveRecord универсальный метод, который возвращает массив любого принадлежащего имени класса?

Например:

@article.name.parents # => ["category"]

Спасибо

Ответы [ 3 ]

0 голосов
/ 08 октября 2009

Я считаю, что это невозможно, потому что то, что делает Rails, имея belongs_to :something внутри некоторого класса, - это метод метапрограммирования для добавления метода def something внутри этого класса, и он на самом деле не хранит эти "родительские" классы.

0 голосов
/ 08 октября 2009

Чтобы найти все «принадлежащие» ассоциации для вашей модели, среди которых есть «родители», вы можете сделать это:

YourModel.reflections.select { |name, reflection| reflection.macro == :belongs_to }
0 голосов
/ 08 октября 2009

Если у вас есть отношение между двумя моделями, например, статья, имеющая одну категорию, у вас будет отношение has_many в категории. И принадлежат в статье.

class Article < ActiveRecord::Base
    belongs_to :category
end

class Category < ActiveRecord::Base
    has_many :articles
end

Затем из статьи или категории можно получить связанный объект.

article.category # => The category
category.articles # => The articles

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

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