link_toメソッドにてjs形式のファイルが呼び出されない
ただいま、Ruby On Rials 5アプリケーションプログラミングを勉強中なのですが、ajaxの非同期処理の学習でわからないことがあるのでおしえていただきたいです。
発生している問題・エラーメッセージ
link_toメソッドでremote属性をtrueとしてupanelというアクションを呼び出すようにしたのですが、リクエストがjs形式にならずhtml形式のリクエストが送信されてしまい、js.erbのファイルが呼び出されません。
ajax機能を使用するためには何か必要な準備があるのでしょうか?
他の人の記事等を見ても特に準備があったようには思えませんでした。
申し訳ないですがjs.erbを呼び出すための解決策を教えていただきたいです。
該当のソースコード
ruby
1class AjaxController < ApplicationController 2 def index 3 end 4 def upanel 5 @time = Time.now.to_s 6 logger.debug(request.fullpath + 'デバッグ') 7 respond_to do |format| 8 format.html 9 format.js 10 end 11 end 12end
html
1<div> 2 現在時刻:<%= Time.now %> 3</div> 4<div id="result"> 5 現在時刻:<%= Time.now %> 6</div> 7<%= link_to '更新', { action: :upanel}, remote: true %>
js
1$('#result').html( 2 "<%= escape_javascript('現在時刻:' + @time) %>" 3);
ruby
1require 'time_constraint' 2 3Rails.application.routes.draw do 4get 'ajax/index' 5get 'ajax/upanel(.:format)' 6post 'ajax/upanel(.:format)' 7#post 'ajax/upanel.js'
試したこと
・app/assets/javascripts/application.js内のコメントアウトは削除し、requireを全て有効にした。
・ルート指定をpost 'ajax/upanel.js'にしてみた
・upanelアクション内でrequest.fullpathを確認したら「Processing by AjaxController#upanel as HTML
/ajax/upanelデバッグ」が表示された。
・同フォルダのupanel.html.erbが呼び出されるのは確認した。
・コードの記述に間違いないことは確認した。
・gem 'jquery-rails'を追加した。
補足情報(FW/ツールのバージョンなど)
Rails 5.2.2
ruby 2.4.1p111
mac os 10.14.2(mojave)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。