Большая часть кода для установки ActionCable в моем приложении Rails находится в файле, который загружается только при посещении страницы, названной в честь ресурса. В этом случае scroll_bottom()
запускается, когда я нахожусь на сообщениях #index
, но выдает ошибку в консоли, когда я где-либо еще.
Могу сказать, что это как-то связано с $(document).on 'turbolinks:load', ->
. Как я могу исключить scroll_bottom()
, когда меня нет на странице #index
?
messages.coffee
App.messages = App.cable.subscriptions.create "MessagesChannel",
connected: ->
console.log 'Connected'
disconnected: ->
console.log 'Disconnected'
received: (data) ->
alert data["mmmm"]
peak: (message, conversation_id) ->
@perform 'speak', message: message, conversation_id: conversation_id
$(document).on 'turbolinks:load', ->
submit_message()
scroll_bottom()
submit_message = () ->
$('#response').on 'keydown', (event) ->
if event.keyCode is 13
message = event.target.value
conversation_id = $("#messages").data("conversation-id")
App.messages.speak(message, conversation_id)
event.target.value = ""
event.preventDefault()
scroll_bottom = () ->
$('#messages').scrollTop($('#messages')[0].scrollHeight)