我有3个模特
class User < ActiveRecord::Base
has_many :teams, :through => :team_memberships
has_many :team_memberships
end
class Teams < ActiveRecord::Base
has_many :users, :through => :team_memberships
has_many :team_memberships
has_many :clubs, :through => :club_memberships
has_many :club_memberships
end
class Clubs < ActiveRecord::Base
has_many :teams, :through => :club_memberships
has_many :club_memberships
end
我希望能够获得用户所属的俱乐部的唯一列表。如果我有以下内容:
@teams = User.last.teams
我如何获得这些球队所属俱乐部的名单。如果有任何重复,我只想在列表中显示一次。
目前如果我这样做:
<% @user.teams.each do |t| %>
<% t.clubs.each do |c| %>
<%= link_to c.name, c %>
<% end %>
<% end %>
我显然有一个完整的列表,但我想删除重复项。任何人都可以提供修复吗?
答案 0 :(得分:0)
看起来我可以像这样建立一种关系:
class User < ActiveRecord::Base
has_many :clubs, -> { uniq }, :through => :teams
end
然后参考:
<% @user.clubs.each do |c| %>
<%= c.name %>
<% end %>
如果有更好的方法,请告诉我!