3

一个示例模式是“book belongs_to library”

r = Book.reflect_on_all_associations(:belongs_to).first

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

所以我的问题是......如果我想动态访问“库”类,我该怎么做?

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

我最初的尝试是这样的:

r.name.singularize.classify.constantize

但这似乎很尴尬……有没有更合适的方法?

4

2 回答 2

1

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

k = Post.reflect_on_all_associations(:belongs_to).first.active_record
# => User
k.first
# => returns the first user
于 2013-10-25T14:07:37.913 回答
0

尝试这个:

r.class.name.constantize
于 2013-10-25T13:59:51.313 回答