如何循环多个多态模型?

时间:2014-05-17 18:47:59

标签: ruby-on-rails ruby ruby-on-rails-4 polymorphic-associations

我不知道如何制作一个循环,通过我所拥有的多态关联的2个模型。我有模型UserFollowDadMom

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 %>

如何做到这一点?

1 个答案:

答案 0 :(得分:1)

你只需要使用

f.followable.name
f.followable.address

如果你想检查它是爸爸还是妈妈,那么你可以像这样检查

f.followable_type == 'Dad'

或者

f.followable.kind_of?(Dad)