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