У меня проблема с js-ответом на действие. Я реализую что-то вроде IM с опросом и Redis. «Проблема», которую я нашел, в данный момент, чтобы отправить сообщение. Я хочу сделать это с помощью кнопки (обычным способом) или с помощью ENTER. Когда форма отправляется с помощью кнопки, она работает правильно: создайте сообщение, а другой пользователь увидит сообщение на своем экране, и сообщение появится на моем экране с помощью create.js, который добавляет последнее сообщение, отправленное на мой экран. Когда я отправляю форму с помощью клавиши ENTER, все работает хорошо (отправьте сообщение, а другое получите его в данный момент), за исключением create.js, по какой-то причине файл create.js загружен, но не выполняет действие добавления последнего сообщение на мой экран. Я поставил код ниже, спасибо вам все заранее;).Запрос AJAX не загружает js действия ответа
create.js
$(".conversations").prepend("#{escape_javascript(render partial: 'dashboard/kid_conversations/show_message', locals: { message: @message})}");
$("#kid_conversation_message_body").val("");
Это JS, чтобы разрешить ENTER представить:
setInterval(function(){
$.ajax({
url: "#{dashboard_kid_conversation_conversation_polling_url(current_kid, token: (params[:token] rescue nil))}",
})},2000);
$('#kid_conversation_message_body').keypress(function(e) {
if (e.keyCode == 13 && !e.shiftKey) {
e.preventDefault();
$.ajax({
url: "#{dashboard_kid_conversation_messages_url}",
type: "POST",
data: $(this).serialize() + "&conversation_token=" + "#{params[:token]}",
success: $("#kid_conversation_message_body").val(""),
dataType: "json"
});
}
});
Итоговые журналы, когда клавишу ВВОД, так загружен create.js.
Rendered dashboard/kid_conversations/_show_message.html.haml (6.5ms)
Rendered dashboard/kid_conversation_messages/create.js.haml (11.4ms)
Completed 200 OK in 287ms (Views: 270.8ms)
Создать действие:
def create
@message = KidConversationMessage.new(params[:kid_conversation_message])
@message.kid_conversation = @conversation
@message.kid = current_kid
@message.save
end
Форма, я использую Haml
.response
= form_for [:dashboard, @message] , html: {remote: true}do |f|
= hidden_field_tag :conversation_token, :body , :value=> @conversation.token
.control-group
= f.label :body, _('Reply')
= f.text_area :body, :rows => 4
= submit_tag _('Send'), :class => 'btn button'
Можете ли вы использовать функцию 'console.debug (variable-here)' вдоль процесса и поделиться с нами результатами? –