LoginSignup
0
0

More than 1 year has passed since last update.

Rails DM機能4

Posted at

Rails DM機能その3の続きです。

開発環境

Mac
Ruby 2.6.5
Rails 6.1.3.2

rooms/show.html.erb

<% if  @user.id != @current_user.id  %>・・1
 <% if @isRoom == true %>・・2
 <p><a href="/rooms/<%= @roomId %>">チャットへ</a>・・3
 <% else %>・・4
  <%= form_for @room do |f| %>・・5
 <%= fields_for @entry do |e| %>・・6
 <%= e.hidden_field :user_id, :value=> @user.id %>
 <% end %>
  <%= f.submit "チャットを始める" %>
  <% end %>
   <% end %>

コードの解説

1・・現在ログインしているユーザーではないという条件をつけます。
2・・@isRoomを使用してチャットルームが作成している時と作成されていない時で条件を分岐させます。
3・・@isRoomがtrueの時、つまりチャットが既にある時は、チャットへボタンを出現させ、すでに作成されたチャットへと移行させます。
4・・falseの場合にはform_forを使って、コントローラにパラメーターを送るための記述をします。

レコードには、親モデルのRoomsテーブルと、子モデルのEntriesテーブル両方に保存する必要があるので、
5・・親モデルにform_forインスタンス変数
6・・子モデルにfields_forインスタンス変数とします。
Entriesテーブルのレコードにはuser_idを送る必要があるので、hidden_fieldで@user.idをvalueにおきます。

これで、roomsテーブルに保存されるための準備が整いました。

参考記事

RailsでややこしいDM機能を1万字でくわしく解説してみた
RailsでDM(ダイレクトメッセージ)を送れるようにしよう

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0