我无法理解如何使用与其完全无关的模型来规划孩子。主要模特是Kid,另一个是Favorite。在应用程序中,用户可以拥有最喜欢的妈妈,而孩子则属于妈妈和爸爸。爸爸妈妈不属于任何事情:
class Favorite < ActiveRecord::Base
belongs_to :user
belongs_to :mom
end
class Kid < ActiveRecord::Base
belongs_to :user
belongs_to :dad
belongs_to :mom
end
class User < ActiveRecord::Base
has_many :kids
has_many :favorites
end
如您所见,收藏夹与Kid没有任何关联。我猜它会如果我喜欢上喜欢的最喜欢.kids或kid.favorites,但后者对我来说没有意义,因为我想用它做什么。
我想要做的是创建一个列出父亲的范围&#39;孩子们,但仅限于那些用户最喜欢的妈妈。如下所示:
@dad = Dad.find(params[:dad_id])
@kids = @dad.kids.current_users_favorite_moms
但是我对收藏夹开始的模型是什么?爸?妈妈?我不确定。你能帮帮我吗?
答案 0 :(得分:2)
首先,我不明白Kid
和User
之间的关系,所以我会放弃它。
我认为使用has_many :through
class User < ActiveRecord::Base
has_many :favorite_moms, through: :favorites, class_name: :mom
end
Class Kid < ActiveRecord::Base
belongs_to :mom
belongs_to :dad
end
class Favorite < ActiveRecord::Base
belongs_to :user
belongs_to :mom
end
然后我们会这样做
@dad = Dad.find(id)
@kids = Kid.where(dad: @dad, mom: current_user.favorite_moms)
尝试并告诉我它是否有效。