【Rails】グループメンバーにグループ作成者を含めたい
初めて質問させていただきます。
至らぬ点が多くあるかと思いますが、ご助力をお願いいたします。
実現したいこと
Railsアプリケーションでグループを作成する機能を付けました。
続いて、作成したグループへの参加機能を追加すると共にグループ一覧画面にメンバーの人数、グループ詳細画面にメンバーの名前を表示したいと考えています。
発生している問題
グループ作成者がメンバーに含まれておらず、作成者以外のメンバーがいない場合、人数が0になってしまいます。
【一覧画面】
【詳細画面】
該当するソースコード
ルーティングの記述
resources :groups do
get 'join' => 'groups#join'
end
groups_controller
def create
@group = Group.new(group_params)
@group.owner_id = current_user.id
#@group.usersに、current_userを追加する
@group.users << current_user
if @group.save
redirect_to groups_path
else
render :new
end
end
def join
@group = Group.find(params[:group_id])
@group.users << current_user
redirect_to groups_path
end
def destroy
@group = Group.find(params[:id])
#current_userは、@group.userから消される
@group.users.delete(current_user)
redirect_to groups_path
end
Viewページ
show.html.erb
<td>
<% @group.users.each do |member| %>
<%= member.name %><br>
<% end %>
</td>
_index.html.erb
<% groups.each do |group| %>
<%= group.group_users.count %>
<% end %>
参考にさせていただいた記事
①の記事から参考にさせていただいてのですが、モデル作成時referencesについて知識が浅く使いこなせないと考えた為、
_create_group_users.rb
t.integer :user_id
t.integer :group_id
のようにしています。
0