Метаданные Rails has_many - PullRequest
1 голос
/ 11 мая 2011

У меня есть модель, которая объявляет несколько has_many отношений. Доступны ли метаданные в ActiveRelation, чтобы я мог циклически проходить через эти has_many отношения при работе с этой моделью, чтобы увидеть, сколько has_many отношений включает модель, а затем получить доступ к содержимому каждого из них оттуда?

Какой-нибудь псевдокод (не запустится), если он поможет уточнить, какова моя цель:

MyModel.has_many_relationships.each do |relationship|
    relationship.contents.each do |content|
      # ...
    end
end

1 Ответ

2 голосов
/ 11 мая 2011

Уверен, что вы можете!

Попробуйте поискать "refle_on_all_associations" в документации по Rails!

reflect_on_all_associations(macro = nil)

Returns an array of AssociationReflection objects for all the associations in the class. If you only want to reflect on a certain association type, pass in the symbol (:has_many, :has_one, :belongs_to) as the first parameter.

Example:

  Account.reflect_on_all_associations             # returns an array of all associations
  Account.reflect_on_all_associations(:has_many)  # returns an array of all has_many associations
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...