###実現したいこと
LINEなどのようにリアルタイムで更新ができるチャットアプリを作りたい
jqueryのajax関数を使って開発をしてます。
コードなどはあっているが、更新されません。
###該当のソースコード
index.html.erb
<h1>LineApp!</h1> <%= form_with model: @user, url: "create", local: false do |f| %> <%= f.text_field :title, placeholder: "タイトルを追加" %> <%= f.submit "追加" %> <% end %> <% @titles.each do |title| %> <div class="titles" data-id=<%= title.id %>> <p><%= title.title %></p> </div> <% end %> <script> setInterval(Updata, 1000); function Updata() { var title_id = $('.titles:last').data('id'); $.ajax({ url: "/", type: "GET", data: { title: { id: title_id } }, dataType: 'json', success: function(data) { if (data.id == null) { }else { $('.titles').append('<div class="titles" data-id=' + data.id + '><p>' + data.title + '</p></div>'); } } }); }; </script>
line_controller.rb
class LineController < ApplicationController def index @titles = User.all respond_to do |format| format.html format.json { @new_title = User.where('id > ?', params[:title][:id]) } end end def create User.create(title: params[:title]) end end
index.json.jbuilder
if @new_title.present? json.array! @new_title end
試したこと
console.logなどで動作が正常か確認してみました。
console.log(title_id);
確認したところ動作は正常ですが、
アプリ1
1 1 1 1 1 1
アプリ2(アプリ2でモデルを追加しました)
2 2 2 2 2 2 2 2 2
この通り....
アプリ1の方では、そもそもモデルが追加されてません。
調べてみましたが、わかりません
補足情報(FW/ツールのバージョンなど)
私はRails初心者です
railsのバージョンは
6.1.3.1です
あなたの回答
tips
プレビュー