我有一个称为pods的模型,其中包含许多pod消息。它也可以有很多豆荚。因此,容器可以是其他具有容器消息的容器的容器。每个pod消息都属于一个作者。
这是模型的样子
Pod.rb
has_many :pod_messages, foreign_key: "pod_slug", primary_key: "slug", dependent: :delete_all
has_many :pod_parents, class_name: "PodPod", dependent: :delete_all
has_many :parents, through: :pod_parents, :foreign_key => 'parent_id', :source => 'parent'
has_many :pod_children, class_name: "PodPod", :foreign_key => 'parent_id'
has_many :children, through: :pod_children, :source => 'pod'
PodMessage.rb
belongs_to :pod, foreign_key: "pod_slug", primary_key: "slug", counter_cache: true
belongs_to :author, class_name: "User", foreign_key: "user_id"
PodPod.rb
belongs_to :pod
belongs_to :parent, class_name: "Pod"
给出一个pod,我需要能够找到属于该pod的任何子pod的所有pod消息。
我一直在尝试这样做:
pod_messages = PodMessage.joins(:pod => :pod_pods).where(pod_pods: {parent_id: 7466}).references("pods")
但是我得到:ActiveRecord :: ConfigurationError:无法将“ Pod”加入名为“ pod_pods”的关联;也许您拼错了?
当我尝试这样做时:
pm = PodMessage.joins(:pod => :pod_parents).where(pod_parents: {parent_id: 7466}).references("pods")
我得到:ActiveRecord :: StatementInvalid:PG :: UndefinedTable:错误:缺少表“ pod_parents”的FROM子句条目 第1行:..._ pods“在” pod_pods“上。” pod_id“ =” pods“。” id“在” pod_paren ...
理想情况下,我将能够获得以下信息: