LoginSignup
Ri-Ima
@Ri-Ima (いまのい)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【Rails】グループメンバーにグループ作成者を含めたい

Q&AClosed

初めて質問させていただきます。
至らぬ点が多くあるかと思いますが、ご助力をお願いいたします。

実現したいこと

Railsアプリケーションでグループを作成する機能を付けました。
続いて、作成したグループへの参加機能を追加すると共にグループ一覧画面にメンバーの人数、グループ詳細画面にメンバーの名前を表示したいと考えています。

発生している問題

グループ作成者がメンバーに含まれておらず、作成者以外のメンバーがいない場合、人数が0になってしまいます。

【一覧画面】

image.png

【詳細画面】

image.png

該当するソースコード

ルーティングの記述

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

No Answers yet.

Your answer might help someone💌