2017-01-23 16 views
0

チャットアプリケーションで画像を添付します。私はテキストチャットでやったが、私はactioncableで添付ファイルを送信することができません。ActionCable with attachment

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: trueform_forに追加してください。

私はペーパークリップの宝石で試してみましたが、それは問題なく動作しています。あなたが問題になったら、私たちにpingして

関連する問題