回答編集履歴

5

誤字

2019/10/14 14:23

投稿

rhiroe
rhiroe

スコア2349

test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
 
58
58
 
59
- もちろん`$('#messages').data('room_id')`をそのまま`room_channel.js`に渡してもいいです。
59
+ もちろん`$('#messages').data('room_id')`をそのまま`room_channel.rb`に渡してもいいです。
60
60
 
61
61
 
62
62
 

4

追記

2019/10/14 14:23

投稿

rhiroe
rhiroe

スコア2349

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  end
16
16
 
17
- ```
17
+ > ```
18
18
 
19
19
 
20
20
 
@@ -53,3 +53,37 @@
53
53
  },
54
54
 
55
55
  > ```
56
+
57
+
58
+
59
+ もちろん`$('#messages').data('room_id')`をそのまま`room_channel.js`に渡してもいいです。
60
+
61
+
62
+
63
+ ```js
64
+
65
+ speak: function(message) {
66
+
67
+ return this.perform('speak', {
68
+
69
+ message: message, room_id: $('#messages').data('room_id')
70
+
71
+ });
72
+
73
+ }
74
+
75
+ ```
76
+
77
+
78
+
79
+ ```rb
80
+
81
+ def speak(data)
82
+
83
+ Message.create! content: data['message'], user_id: current_user.id, room_id: data['room_id']
84
+
85
+ end
86
+
87
+ ```
88
+
89
+ 動作確認してないですが、こんな感じですかね。

3

修正

2019/10/14 14:21

投稿

rhiroe
rhiroe

スコア2349

test CHANGED
@@ -42,10 +42,14 @@
42
42
 
43
43
  // app/javascript/channels/room_channel.js
44
44
 
45
- received: function(data) {
45
+ const chatChannel = consumer.subscriptions.create({ channel: 'RoomChannel', room: $('#messages').data('room_id') }, {
46
46
 
47
- return $('#messages').append(data['message']);
47
+ // ...
48
48
 
49
+ received: function(data) {
50
+
51
+ return $('#messages').append(data['message']);
52
+
49
- },
53
+ },
50
54
 
51
55
  > ```

2

追記

2019/10/14 13:56

投稿

rhiroe
rhiroe

スコア2349

test CHANGED
@@ -19,3 +19,33 @@
19
19
 
20
20
 
21
21
  記事で言うと[ここ](https://qiita.com/eRy-sk/items/4c4e983e34a44c5ace27#roomid%E3%82%92%E5%8F%97%E3%81%91%E5%8F%96%E3%82%8A%E7%9B%A3%E8%A6%96%E3%81%99%E3%82%8B%E5%A0%B4%E6%89%80%E3%82%92%E5%88%86%E3%81%91%E3%82%8B)の`app/channels/room_channel.rb`に当たる箇所です。
22
+
23
+
24
+
25
+ ## 追記
26
+
27
+ > ```erb
28
+
29
+ <div id='messages' data-room_id="<%= @room.id %>">
30
+
31
+ > ```
32
+
33
+
34
+
35
+ の`room_id`はメッセージ登録後にブロードキャストしたHTMLをレンダリングする際、
36
+
37
+ どの`room_id`に表示させるかの判断に利用します。コードで言えば以下の部分です。
38
+
39
+
40
+
41
+ > ```js
42
+
43
+ // app/javascript/channels/room_channel.js
44
+
45
+ received: function(data) {
46
+
47
+ return $('#messages').append(data['message']);
48
+
49
+ },
50
+
51
+ > ```

1

修正

2019/10/14 13:53

投稿

rhiroe
rhiroe

スコア2349

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ルームIDについてですが、データの登録時点では`params['room']`から取得しています。
4
4
 
5
- データを作成している箇所はJobの以下にあたりますので参考にしてください。
5
+ データを作成している箇所は以下にあたりますので参考にしてください。
6
6
 
7
7
  > ```rb
8
8