質問編集履歴

1

体裁修正しました。

2019/09/12 20:07

投稿

Giga-Bakken
Giga-Bakken

スコア5

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  railsでLINEのようなチャットができるシステムを作っています。
6
6
 
7
- https://qiita.com/eRy-sk/items/4c4e983e34a44c5ace27
7
+ [参考にした内容](https://qiita.com/eRy-sk/items/4c4e983e34a44c5ace27)
8
8
 
9
9
  こちらの投稿者様のソースコードを参考に作成しております。
10
10
 
@@ -26,7 +26,7 @@
26
26
 
27
27
  room.coffee
28
28
 
29
-
29
+ ```ここに言語を入力
30
30
 
31
31
  document.addEventListener 'turbolinks:load', ->
32
32
 
@@ -34,14 +34,22 @@
34
34
 
35
35
  connected: ->
36
36
 
37
+ # Called when the subscription is ready for use on the server
38
+
37
39
 
38
40
 
39
41
  disconnected: ->
40
42
 
43
+ # Called when the subscription has been terminated by the server
44
+
41
45
 
42
46
 
43
47
  received: (data) ->
44
48
 
49
+ # メッセージをブロードキャストで受け取った時
50
+
51
+ # id=messagesにdata['message']を表示させる
52
+
45
53
  show_user = $('#show_user').data('show_user')
46
54
 
47
55
  console.log data['chat_user']
@@ -60,18 +68,34 @@
60
68
 
61
69
  speak: (message)->
62
70
 
71
+ # メッセージが送信された時
72
+
73
+ # コンシューマになったRoomChannelのspeakアクションが呼ばれる
74
+
63
75
  @perform 'speak', message: message
64
76
 
65
77
 
66
78
 
79
+ # Viewの'[data-behavior~=room_speaker]'内のtextを引数に実行される
80
+
81
+ # eventはここでは'[data-behavior~=room_speaker]'にあたる
82
+
67
83
  $(document).on 'keydown', '[data-behavior~=room_speaker]', (event) ->
68
84
 
85
+ # Ctrl + returnキーを押すとここで上のApp.roomの:speakが呼ばれる
86
+
69
87
  if event.ctrlKey && event.keyCode is 13
70
88
 
89
+ # 引数eventのvalueをspeakアクションに渡す
90
+
71
91
  App.room.speak event.target.value
72
92
 
93
+ # eventのvalueを初期化
94
+
73
95
  event.target.value = ''
74
96
 
97
+ # 中身をsubmitしない
98
+
75
99
  event.preventDefault()
76
100
 
77
101
 
@@ -84,6 +108,8 @@
84
108
 
85
109
  event.preventDefault()
86
110
 
111
+ ```
112
+
87
113
 
88
114
 
89
115
  ### 該当のソースコード
@@ -92,6 +118,8 @@
92
118
 
93
119
 
94
120
 
121
+ ```ここに言語を入力
122
+
95
123
  class RoomChannel < ApplicationCable::Channel
96
124
 
97
125
  def subscribed
@@ -104,25 +132,31 @@
104
132
 
105
133
  def unsubscribed
106
134
 
135
+ # Any cleanup needed when channel is unsubscribed
136
+
107
137
  end
108
138
 
109
139
 
110
140
 
111
141
  def speak(data)
112
142
 
143
+ # coffeeで実行されたspeakのmessageをmessageとしてroom_channelのreceivedにブロードキャストする
144
+
145
+ # ActionCable.server.broadcast 'room_channel', message: data['message']
146
+
113
147
  Message.create!(content: data['message'], user_id: current_user.id, room_id: params['room_id'])
114
148
 
115
149
  end
116
150
 
117
151
  end
118
152
 
119
-
153
+ ```
120
154
 
121
155
  ### 該当のソースコード
122
156
 
123
157
  message_broadcast_job.rb
124
158
 
125
-
159
+ ```ここに言語を入力
126
160
 
127
161
  class MessageBroadcastJob < ApplicationJob
128
162
 
@@ -160,11 +194,13 @@
160
194
 
161
195
 
162
196
 
197
+ ```
198
+
163
199
  ### 該当のソースコード
164
200
 
165
201
  show.html.erb
166
202
 
167
-
203
+ ```ここに言語を入
168
204
 
169
205
  <div class="talk-name">
170
206
 
@@ -204,7 +240,7 @@
204
240
 
205
241
  </div>
206
242
 
207
-
243
+ ```
208
244
 
209
245
  ### 補足情報(FW/ツールのバージョンなど)
210
246