从belongs_to动态查找父对象

时间:2013-10-25 13:55:09

标签: ruby-on-rails

示例模式是“book belongs_to library”

r = Book.reflect_on_all_associations(:belongs_to).first

以上将给出第一个反思。然后我可以用“r.name”来获取“库”(好吧,假设没有其他的belongs_to)。

所以我的问题是......如果我想动态访问“图书馆”课程,我该怎么做?

我不想手动使用“Library.all”(等),因为我试图使它成为通用的东西。

我最初的尝试是这样的:

r.name.singularize.classify.constantize

但这看起来很尴尬....有更合适的方法吗?

2 个答案:

答案 0 :(得分:1)

我刚刚在我的控制台中尝试过这个:

k = Post.reflect_on_all_associations(:belongs_to).first.active_record
# => User
k.first
# => returns the first user

答案 1 :(得分:0)

试试这个:

r.class.name.constantize