質問するログイン新規登録

質問編集履歴

1

自分なりにですが情報を少し絞らせていただきました汗

2019/08/11 05:52

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -125,4 +125,62 @@
125
125
  end
126
126
  end
127
127
  end
128
+ ```
129
+
130
+ # 追記
131
+ [1]こちらのコードを突っつかれますと、、
132
+ ```haml
133
+ .message{"data-message-id": "#{message.id}"}
134
+ ```
135
+ [2]同じgroup.idの場合のみここの処理がされ、、、
136
+ ```jquery
137
+ var reloadMessages = function() {
138
+ if (window.location.href.match(//groups/\d+/messages/)){
139
+ var last_message_id = $('.message:last').data("message-id")
140
+ $.ajax({
141
+ url: 'api/messages',
142
+ type: 'get',
143
+ dataType: 'json',
144
+ data: {id: last_message_id}
145
+ })
146
+ .done(function(messages) {
147
+ var insertHTML = '';
148
+ messages.forEach(function(message){
149
+ insertHTML = buildHTML(message);
150
+ $('.messages').append(insertHTML);
151
+ $('.messages').animate({ scrollTop: $('.messages')[0].scrollHeight});
152
+ })
153
+ })
154
+ .fail(function() {
155
+ alert('自動更新に失敗しました!');
156
+ });
157
+ }
158
+ };
159
+ setInterval(reloadMessages, 5000);
160
+ });
161
+ ```
162
+ [3]このapi/index.controller.rbが始まります。
163
+ ```Rails
164
+ class Api::MessagesController < ApplicationController
165
+ def index
166
+ group = Group.find(params[:group_id])
167
+ last_message_id = params[:id].to_i
168
+ @messages = group.messages.includes(:user).where("id > #{last_message_id}")
169
+ end
170
+ end
171
+ ```
172
+
173
+ [#]こちらがconfig/routes.rbになります。
174
+ ```
175
+ Rails.application.routes.draw do
176
+ devise_for :users
177
+ root 'groups#index'
178
+ resources :users, only: [:index,:edit, :update]
179
+ resources :groups, only: [:new, :create, :edit, :update] do
180
+ resources :messages, only: [:index, :create]
181
+ namespace :api do
182
+ resources :messages, only: :index, defaults: { format: 'json' }
183
+ end
184
+ end
185
+ end
128
186
  ```