如何获取 Rails 中 belongs_to 的 class 的名称?
How to get the name of the class that belongs_to in Rails?
class Foo
belongs_to :bar
找出哪个 class 是 belongs_to
关系的好方法是什么?
本例中为Bar
。
试试吧
Foo.reflect_on_association(:bar).klass
我确定有一个内置方法可以解决这个问题,但作为一种解决方法,您可以查看 Foo
的属性,利用其中一个是 bar_id
的约定:
Foo.attribute_names.grep(/.*_id/).map{ |bar| bar[0..-4].classify.safe_constantize }
更新
内置方法是
Foo.reflect_on_all_associations(:belongs_to).map(&:name)
class Foo
belongs_to :bar
找出哪个 class 是 belongs_to
关系的好方法是什么?
本例中为Bar
。
试试吧 Foo.reflect_on_association(:bar).klass
我确定有一个内置方法可以解决这个问题,但作为一种解决方法,您可以查看 Foo
的属性,利用其中一个是 bar_id
的约定:
Foo.attribute_names.grep(/.*_id/).map{ |bar| bar[0..-4].classify.safe_constantize }
更新
内置方法是
Foo.reflect_on_all_associations(:belongs_to).map(&:name)