我想要做的是显示属于组成员的用户。我有3个型号:用户,会员,&组。我想向所有作为组“成员”的用户显示。我认为我的问题与我的群组控制器有关。
以下是每个模型属性:
create_table "groups", force: :cascade do |t|
t.string "name"
end
create_table "memberships", force: :cascade do |t|
t.integer "user_id"
t.integer "group_id"
end
create_table "users", force: :cascade do |t|
t.string "email"
t.string "first_name"
t.string "last_name"
end
以下是各个模型中的代码:
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
class User < ActiveRecord::Base
has_many :memberships, dependent: :destroy
has_many :groups, through: :memberships
end
class Group < ActiveRecord::Base
has_many :memberships, dependent: :destroy
has_many :users, through: :memberships
end
以下是群组控制器中的代码:
class CirclesController < ApplicationController
def show
@group = Group.find(params[:id])
@membership = Membership.where(group_id: @group)
end
end
以下是“查看群组”中的代码
<h1>Group Name: <%= @group.name %></h1>
<div class="row">
<%= render @memberships %>
</div>
以下是部分_membership.html.erb
中的代码理想情况下,我想显示用户名和&amp;姓氏,但是现在我很乐意至少显示会员User_ID。提前感谢您的帮助!
作为旁注,如果我将组视图中的代码更改为下面的代码,那么我可以看到作为该组成员的2个用户
<h1>Group Name: <%= @group.name %></h1>
<div class="container">
<div class="row">
<table>
<thead>
<tr>
<th>Member ID</th>
<th>Group ID</th>
</tr>
</thead>
<tbody>
<% @membership.each do |member| %>
<tr>
<td><%= member.user_id %></td>
<td><%= member.circle_id %></td>
</tr>
<% end %>
</tbody>
</table>
</div>
</div>
答案 0 :(得分:2)
<强>控制器强>
class CirclesController < ApplicationController
def show
@group = Group.find(params[:id])
@members = @group.users # this will find the group users
end
end
<强>部分强>
<% @members.each do |member| %>
<tr>
<td><%= member.id %></td> // it will show the user ID
<td><%= @group.id %></td> // I assume your circle_id is the group id
</tr>
<% end %>