前提・実現したいこと
自作のWEBサイトにてチャット機能を導入したいです。
userとadmin間のチャット機能を実装中です。admin側からユーザー詳細ページにアクセスし、
メールアイコンからチャットルームに入室して、やり取りが出来るようにしたいです。
admin側はログイン状態、user側はログイン有無関係無くメッセージを受け付けられるようにしたいです。
下記サイトを参考にしています。
https://qiita.com/yuto_1014/items/249c93970780b498d86e
上記サイトではuser同士のやり取りですが、今回はuserとadmin間です。
発生している問題・エラーメッセージ
ユーザー詳細ページにリンク用のアイコンが表示されない。
エラーメッセージは表示されていません。
アイコン以外の情報は表示されています。
該当のソースコード
show.html.haml
.user-profile-header <プロフィール詳細> .profile = image_tag @user.image.url, alt: "NoImage" %br 【ユーザー名】 = @user.name %br 【性別】 = @user.sex %br 【出身地】 = @user.birth_place %br 【プロフィール】 = @user.profile -if user_signed_in? - unless @user.id == current_user.id - if @isRoom == true = link_to room_path(@roomId) do %button#dm_submit %i.fas.fa-envelope - else = form_for @room, url: rooms_path do |f| = fields_for @entry do |e| = e.hidden_field :user_id, :value=> @user.id %button#dm_submit{type="submit"} %i.fas.fa-envelope
class UsersController < ApplicationController def show @user = User.find(params[:id]) if user_signed_in? @currentUserEntry = Entry.where(user_id: current_user.id) @userEntry = Entry.where(user_id: @user.id) unless @user.id == current_user.id @currentUserEntry.each do |cu| @userEntry.each do |u| if cu.room_id == u.room_id then @isRoom = true @roomId = cu.room_id end end end unless @isRoom @room = Room.new @entry = Entry.new end end end end def edit end def update if current_user.update(user_params) redirect_to root_path else render :edit end end private def user_params params.require(:user).permit(:name, :birth_place, :birth_date, :profile, :image) end end
class AdminsController < ApplicationController def show if admin_signed_in? @currentAdminEntry = Entry.where(admin_id: current_admin.id) @adminEntry = Entry.where(admin_id: @admin.id) unless @admin.id == current_admin.id @currentAdminEntry.each do |cu| @adminEntry.each do |u| if cu.room_id == u.room_id then @isRoom = true @roomId = cu.room_id end end end unless @isRoom @room = Room.new @entry = Entry.new end end end end def edit end def update if current_admin.update(admin_params) redirect_to salontoppage_path else render :edit end end private def admin_params params.require(:admin).permit(:name, :category, :birth_place, :profile, :image) end end
userモデルを参考に、admin用に記載を追記しています。
プログラミング初心者にて、初投稿となります。ご教示のほど宜しくお願い致します。
※他に必要情報あれば教えてください。
補足情報(FW/ツールのバージョンなど)
rails 6.0.3.2
ruby 2.6.5
jquery-rails 4.4.0
haml-rails 2.0.1
あなたの回答
tips
プレビュー