5

假设我有一些通过一对多关系链接的类:

class A
  field :name, type: String
  has_many :b

class B
  field :title, type: String 
  belongs_to :a

假设我有一个 B 的实例,并且我想检索他的 belongs_to 关系的类名(在我的示例中为“A”,而不是链接到我的 B 对象的类型 A 的实例)。

a = A.new name: 'my A object'
b = B.new title: 'my B object', a: a

assert_equal b.get_relationships(:belongs_to), ['A'] #substitute "get_relationships" with something that actually exists :)

我应该怎么办?

我在类似的主题(使用反射)上查看了这个答案,但我无法让它发挥作用。也许 Rails 4 发生了一些变化?

4

1 回答 1

8
B.reflect_on_all_associations(:belongs_to).map(&:name)

或者

b.class.reflect_on_all_associations(:belongs_to).map(&:name)
于 2013-11-05T14:26:37.377 回答