如何找到实例的所有关联

时间:2015-10-21 21:40:24

标签: ruby-on-rails

这个问题RAILS: How to get has_many associations of a model讲述了如何找到一个类的所有关联。我想为这个类的实例做这个。特别是我有一个User模型,当我设置User实例时,它有许多关联,例如user.profile,user.plans等我想检查已成功为特定用户实例设置的所有关联。你是怎么做到的?

1 个答案:

答案 0 :(得分:1)

根据您提供的链接,您应该能够通过这样做完成您想要的内容:

User.reflect_on_all_associations.map { |assoc| assoc.name }.each do |assoc|
  association_object = user.send assoc
  #note this is the user instance not the class.
  # do whatever you want with association_object. check if nil?
end

代码的作用是,它遍历关联名称键列表返回了您提供的链接,然后用它来调用"方法" (意思是关联)使用send

希望有所帮助