luc*_*e84 5 reflection ruby-on-rails classname ruby-on-rails-4
假设我有一些由一对多关系链接的类:
class A
field :name, type: String
has_many :b
class B
field :title, type: String
belongs_to :a
Run Code Online (Sandbox Code Playgroud)
我们还要说我有一个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 :)
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
我看了一个关于类似主题的答案(使用反射),但我无法使其成功.也许在Rails 4中有些变化?
B.reflect_on_all_associations(:belongs_to).map(&:name)
Run Code Online (Sandbox Code Playgroud)
要么
b.class.reflect_on_all_associations(:belongs_to).map(&:name)
Run Code Online (Sandbox Code Playgroud)