2017-06-10 4 views
1

Gibt es eine Möglichkeit, eine Datei über ActionCable zu übergeben? Ich versuche, Paperclip für den Upload zu verwenden.Büroklammer mit ActionCable

<div id="messaging-form" class="form-group"> 
    <%= f.file_field :msg_image, id:"msg_image" %> 
    <%= f.submit "Send", id: "data-send" %> 

Mein Javascript ist

return $('#new_message').submit(function(e) { 
    e.preventDefault(); 
    var $this 
    $this = $(this); 
    msg_image = $this.find('#msg_image'); 
    App.global_chat.send_message(msg_image.val()); 
    msg_image.val(''); 
    return false; 
    } 
}); 

//inside my App.cable.subscriptions.create 
    send_message: function(msg_image) { 
     return this.perform('send_message', { 
     msg_image: msg_image 
     }); 
    } 


//message_broadcast_job.rb 
class MessageBroadcastJob < ApplicationJob 
    queue_as :default 

    def perform(data) 
    message = Message.create!(msg_image: data['msg_image']) 
    ActionCable.server.broadcast "conversations_#{message.conversation.id}_channel", 
     message: message 
    end 

end 

ist klar, einfach den Pfad Bilddatei durch msg_image.val vorbei() ist nicht der richtige Weg, es zu tun. Ich brauche die tatsächlichen Daten Paperclip muss die Datei ordnungsgemäß speichern.

Die letzte Information, die ich zu diesem Thema finden konnte, war vor einem Jahr und sagte, dass es nicht möglich sei, Dateien über ActionCable weiterzuleiten. Allerdings habe ich mich gefragt, ob es irgendwelche Updates gab oder ob jemand einen guten Hack gefunden hat.

Antwort

1

Ich habe seit dem entdeckt, dass, obwohl WebSockets Dateien verarbeiten können, das Rails-ActionCable nicht.