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.