我不知道如何制作一个循环,通过我所拥有的多态关联的2个模型。我有模型User
,Follow
,Dad
和Mom
。
class User
has_many :follows
end
class Mom
has_many :follows, as: :followable
# columns: name, :address
end
class Dad
has_many :follows, as: :followable
# columns: name
end
class Follow
belongs_to :user
belongs_to :followable, polymorphic: true
# columns: user_id, followable_id, followable_type
end
我的目标是遍历用户所关注的妈妈和爸爸,并获得如下特定属性:
# FollowsController
index
# follows = dads and moms
@follows = current_user.follows.paginate(page: params[:page])
end
# follows/index.html.erb
<% @follows.each do |f| %>
<%= f.dad.name %>
<%= f.mom.name %>
<%= f.mom.address %>
<% end %>
如何做到这一点?
答案 0 :(得分:1)
你只需要使用
f.followable.name
f.followable.address
如果你想检查它是爸爸还是妈妈,那么你可以像这样检查
f.followable_type == 'Dad'
或者
f.followable.kind_of?(Dad)