2017-01-23 6 views
0

Я хочу прикрепить изображение с помощью приложения чата. Я сделал с текстовым чатом, но я не могу отправить вложение с actioncable.ActionCable с приложением

App.global_chat = App.cable.subscriptions.create { 
     channel: "ChatRoomsChannel" 
     chat_room_id: messages.data('chat-room-id') 
     }, 
     connected: -> 
     # Called when the subscription is ready for use on the server 

     disconnected: -> 
     # Called when the subscription has been terminated by the server 

     received: (data) -> 
     messages.append data['message'] 
     messages.append data['attachment'] 
     messages_to_bottom() 

     send_message: (message, chat_room_id, attachment) -> 
     @perform 'send_message', message: message, chat_room_id: chat_room_id, attachment: attachment 

    $('#new_message').submit (e) -> 
     $this = $(this) 
     textarea = $this.find('#message_body') 
     attachment = $this.find('#message_attachment') 
     if $.trim(textarea.val()).length > 1 
     App.global_chat.send_message textarea.val(), messages.data('chat-room-id'), attachment[0].files[0] 
     textarea.val('') 
     attachment.val('') 
     e.preventDefault() 
     return false 

ответ

0

Я не могу комментировать, но я могу дать вам советы по его достижению.

Как вы знаете, рельсы form_for не поддерживают загрузку ajax, и это очень сложно в рельсах для загрузки ajax, которые я должен был копать слишком глубоко.

Первый Установите этот драгоценный камень

gem 'remotipart', '~> 1.2' 

После добавления камня вы можете создать форму с входным файлом. Лучше всего после добавления драгоценного камня файл автоматически загружается. Обязательно добавьте remote: true в form_for при создании форм.

Я пробовал с самоцветом скрепки, и он отлично работает. Если у вас возникли проблемы, пинг нас