前提・実現したいこと
ここに質問の内容を詳しく書いてください。
チャットアプリを作成していまして、グループに登録した人だけのユーザー一覧を作ろうかと思いコードを書いています。
人型アイコンをクリックしたら{下記画像(1)}、別ページでグループに参加しているメンバーに飛び(下記画像(2)) グループに登録したユーザーが見れるようにしたいと思っています。
例えば、「 レッド 」というグループがあり、グループに参加しているユーザー(チャットメンバー) (画像3)のように、「 太郎, 鬼太郎 」を(画像2)のグループに参加しているユーザー名と同じ名前が表示できるようにしたい。※redは「カレントユーザーです」
実装コード
views > messages > _main_chat.html.haml
Haml
1.chat-main 2 .main-header 3 .main-header__left-box 4 .main-header__left-box__current-group 5 = @group.name 6 .main-header__left-box__member-list 7 = render partial: 'list' 8 .main-header__edit-btn 9 =link_to "編集",edit_group_path(@group), class: "edit_btn"
app > views > messages > _list.html.haml
Haml
1.main-header__left-box__member-list__lists 2 =link_to users_path do 3 =icon("far", "user") 4 5 .main-header__left-box__member-list__lists__member 6 = @group.users.length
views > users > index.html.haml
Haml
1.users-lists 2 .users-lists__list 3 .users-lists__list__clearfix_chat-member 4 = "ログインしているユーザー" 5 %p.users-lists-user__name= current_user.name 6 7 .users-lists__list__member 8 = "グループに参加しているメンバー" 9 %p 10 %link(rel="stylesheet" href="users/_lists.scss") 11 - @users.each do |user| 12 = user.name
users_controller.rb
class UsersController < ApplicationController def index return nil if params[:keyword] == "" @users = User.where(['name LIKE ?', "%#{params[:keyword]}%"] ).where.not(id: current_user.id).limit(10) respond_to do |format| format.html format.json end end # データを閲覧する画面を表示するためのAction def show end # データを作成する画面を表示するためのAction def new @user = User.new end def edit end # データを作成するためのAction def create @user = User.new(user_params) @user.save redirect_to @user end def update if current_user.update(user_params) redirect_to root_path else render :edit end end # データを削除するためのAction def destroy end private def user_params params.require(:user).permit(:name, :email) end end
画像
あなたの回答
tips
プレビュー