5

1 対多の関係でリンクされたいくつかのクラスがあるとします。

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

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

また、B のインスタンスがあり、彼の属している関係のクラス名を取得したいとします (この例では、B オブジェクトにリンクされたタイプ A のインスタンスではなく、'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 に答える