НАПРАВЛЯЮЩИЕ: Как получить has_many ассоциации модели

как я могу получить has_many ассоциации модели?

Например, если у меня есть этот класс:

class A < ActiveRecord::Base
  has_many B
  has_many C
end

Я был бы метод как это:

A.get_has_many

тот возврат

[B,C]

Действительно ли это возможно?Спасибо!

18
задан Jon Seigel 23 May 2010 в 01:21
поделиться

3 ответа

Вы должны использовать ActiveRecord отражения .

Затем вы можете ввести что-то вроде этого:

A.reflect_on_all_associations.map { |assoc| assoc.name}

, который вернет ваш массив

[:B, :C]
35
ответ дан 30 November 2019 в 07:22
поделиться

Решение найдено:

def self.get_macros(macro)
  res = Array.new
  self.reflections.each do |k,v|
    res << k if v.macro == macro.to_sym
  end
  return res
end
0
ответ дан 30 November 2019 в 07:22
поделиться

Например, вы можете попробовать:

aux=Array.new
Page.reflections.each { |key, value| aux << key if value.instance_of?(ActiveRecord::Reflection::AssociationReflection) }

Привет, Пиоз, хорошего дня!

2
ответ дан 30 November 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: