首页 > 解决方案 > RoR:如何检索关系或集合的各个属性

问题描述

我想列出我关注的用户

我的模型:

Relationship.rb

belongs_to :follower, class_name: "User"

User.rb

has_many :followers, through: :passive_relationships, source: :follower

在我看来

<%= current_user.followers.collect { |follower| follower.username } %>

这给出了观点:

Following
["Lisa", nil, "Derek"] etc

我怎样才能像这样在我的视图中正常列出这些用户?

Lisa
Derek
etc...

标签: ruby-on-rails

解决方案


当然,这取决于您希望它如何显示。但这很容易,例如,假设您正在使用erb渲染,您可以通过迭代来完成:

<% current_user.followers.pluck(:username).compact.each do |follower_username| %>
  <%= follower_username %>
  <br />
<% end %>

请注意,我使用 ARpluck而不是map,这在 Rails 世界中更有效且更惯用,并且我过去常常compact排除nil值。


推荐阅读