我想在聊天应用程序中附加图像。我已完成文本聊天,但我无法发送带有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 :(得分:0)
我无法评论,但我可以给你一些提示来完成它。
如你所知,rails form_for不支持ajax上传,并且在ajax上传的轨道上我很难深入挖掘。
首先安装此宝石
gem 'remotipart', '~> 1.2'
添加gem后,您可以创建一个包含文件输入的表单。最好的事情是在添加gem之后文件自动上传。
在创建表单时,务必在remote: true
添加form_for
。
我尝试过使用paperclip gem,它工作得非常好。如果你有问题,那么ping我们