问题标签 [remotipart]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails 4:如何在上传文件后将“redirect_to”与 AJAX 一起使用来呈现部分内容?
我正在使用carrierwave
并remotipart
处理 AJAX 表单,在该表单中我将音乐专辑和随附信息上传到网站。提交表单后,我想将表单所在的部分重定向到新创建的相册页面。位于的表单\albums\_new.html.erb
如下所示:
控制器new
和create
方法如下所示:
重定向目前仅在我提交没有任何文件附件的表单时才有效。如果我确实尝试包含文件附件,则上传仍然成功,但重定向失败,并且我在控制台中收到以下消息:
我已经能够实现一种解决方法,我只需调用相同的create.js.erb
表达式show.js.erb
:
并编写create
这样的方法:
从功能上讲,这段代码确实实现了我想要的。但是,从路由的角度来看,这对我来说没有意义。您将如何编写更优雅的解决方案?
ruby-on-rails - 使用 remotipart 提交表单后呈现页面时,nested_form 出错
应用程序:
在我的 Rails (v3.2.17) 项目中,我有类:
和:
我paperclip
用来处理图片上传。
在用户表单中,我使用 gemnested_form
来动态创建嵌套的照片表单。我的用户表单视图是这样的:
在nested_attribute 照片的表单中,我有file_field。由于我想使用 Ajax 提交用户表单,而无法通过 ajax 提交文件,所以我也在使用remotipart
gem 来处理这个问题。我photo_fields
的是这样的:
我的控制器有 create 方法:
reload_form.js.erb
就像:
有什么作用:
成功案例,当我向用户提交多张照片并为每张照片指定名称时,确实可以完美运行。
错误情况,当我提交没有姓名的照片(需要姓名)但也没有图片文件时,确实可以正常工作。表单已重新加载,错误显示在我的 html 中。这是 Rails 日志:
什么不起作用:
错误情况,当我提交没有名字的照片但我上传了图片文件时,不起作用。
在这种情况下,remotipart
以ajax方式提交图片。f.link_to_add
但是在重新加载from时会出现某种错误nested_form
。没有显示错误,但表单也不会重新加载。
这是 Post 不起作用时的 Rails 日志:
当我在 Firebug 控制台中启用各种错误的展示时,这就是我所看到的:
有没有人遇到过类似的问题并知道如何解决?
我也尝试过nested_form
用cocoon
gem 替换,但我遇到了同样的问题。
jquery - Remotipart 文件上传,将 NaN 作为响应代码
我正在使用 remotipart 在我的 rails 应用程序中上传带有 ajax 的文件。我正在使用 jquery-ujs Ajax“全局”事件ajax:success
并ajax:error
在我的 javascript 中触发成功或失败的代码。问题是错误回调总是触发并且永远不会成功。
我可以在开发人员工具网络选项卡中看到该请求正在返回 200 OK 状态。
这是我触发远程上传的表单。
我的控制器将请求处理为 json 并呈现 json 响应:
这就是在开发人员工具中看到的响应主体的样子:
Remotipart 将响应包装在文本区域中。请注意,它确实包括data-status="200"
这是javascript:
这是我在控制台中看到的输出:
似乎没有正确解析实际的 Textarea 响应。即使它具有 data-status="200",它也被解析为 NaN 并因此调用错误回调。
有人见过这个吗?
使用:
谢谢
ruby-on-rails - 通过 AJAX 上传 rails 文件,涉及 refile 和 remotipart + private_pub
我有一个带有实时聊天功能的 Rails 应用程序(1v1)。我想通过 AJAX 实现文件上传功能,在提交文件上传表单时,文件名将显示在聊天中,而无需重新加载整个页面。
我正在尝试使用 remotipart gem 来通过 AJAX 提交 refile 文件上传表单。文件直接上传到 S3,所以那些根本不会打到我的应用程序(我不需要显示它们),我只是通过聊天将文件名/URL 发送给其他用户。
由于 refile gem,当我选择文件时,这些上传就开始了。因此,当我提交(“发送文件”按钮)表单时,它只是将文件属性(message.message_attachment/id、url、大小等)和 message_id 保存到数据库中。
在图片上你可以看到我想要实现的。聊天输入文本(message.body)有一个单独的表单,文件上传有另一个表单(message.message_attachment)。到目前为止,聊天与 private_pub gem 完美配合。选择文件也正确发生(包括将文件上传到 S3 和 204 状态响应),但提交表单(通过单击“发送文件”将消息保存到数据库)仅适用于整页重新加载。
我尝试的解决方案:
- 如果我没有将 'authenticity_token: true' 放入表单助手中进行上传,那么我会收到无效的 authencity token 错误。
- 如果我正在使用与聊天正常工作的消息控制器,那么我会在表单中收到缺少模板错误。
- 如果我把respond_to js(有或没有渲染:'create.js.erb')放在那里,我会收到未知格式错误。
对于聊天消息,我使用相同的 create.js.erb,但由于 private_pub gem,我不必使用 respond_to js。我只需要订阅和发布到/使用conversation_path(@path)。
我觉得我非常接近解决方案,因为它适用于整页重新加载。我不知道private_pub解决方案(不需要respond_to js)和remotipart w/refile(需要respond_to js)之间的兼容性是否会导致问题。
消息模型:
创建.js.erb
消息/_show.html.erb
在实现文件上传之前用于聊天的消息控制器:
消息控制器可以正常工作,并重新加载整页以进行上传:
更新:
问题已解决:app.js 中的错字//=需要 jquery.remotipart...... - 由于 private_pub gem,不需要 response_to js - authencity_token: true 对于表单助手也没有必要,这要归功于 remotipart gem - remotipart 需要能够通过 AJAX 提交文件表单
ruby-on-rails - 使用remotipart 上传carrierwave AJAX
在我的 rails4 中,我想通过 AJAX 提交一个表单,其中包含通过carrierwave上传的文件。据我所知,它可以通过remotipart完成,但无法弄清楚我该怎么做。(Remotipart 安装正确,因为它正在使用我也在应用程序中使用的 refile gem。)
使用下面的当前代码,表单会根据日志提交,并表示create.js.erb
已呈现,但文件中的代码create.js.erb
永远不会运行。
我应该怎么办?
形式
创建.js.erb
_post.html.erb
更新:问题与更新帖子对象有关。更新表单代码可以在 中找到_post.html.erb
,所以这就是为什么<%= j render @post %>
不起作用。还是不知道是什么问题。
那么什么有效:1. 创建没有图像的帖子 2. 更新没有图像的帖子 3. 更新有图像但图像未编辑的帖子 不工作:1. 创建有图像的帖子 2. 更新有图像的帖子已编辑
更新.js.erb
ruby-on-rails-4 - 防止在 Ruby on Rails 中上传受密码保护或损坏的 PDF 文件
我有一个使用 ajax 文件上传的 ruby on rails 4 应用程序。有没有办法阻止用户上传受密码保护或损坏/格式错误的 PDF 文件?
更新:刚刚看到这篇关于使用 gem 检查 PDF 是否损坏的帖子pdf-reader
,它可能有效,但我仍然需要帮助检测锁定的 pdf 文件:
在 Ruby 中检查 PDF 是否损坏(或只是缺少 EOF)的最快方法?
万一这很重要,我正在使用:rails 4.2.5,ruby 2.1.6,remotipart 1.2.1
ruby-on-rails - 使用 remote:true 和 remotipart +carrierwave gem 上传文件
我想通过 remotipart +carrierwave 进行远程文件上传。问题是我的上传工作正常,但它似乎像往常一样上传html。或者通过ajax上传,但是没有调用相应的js文件。我有一个带有 remote:true 的 form_for,以及一个相应的控制器方法 create。由于表单是作为js提交的,所以使用了create.js.erb。
日志显示:
有点奇怪,error_messages 在 create.js.erb 之前呈现,error_messages 在 create.js.erb 中呈现。
ruby-on-rails - Rails 中的 CSV 下载包含 textarea 标签 - 覆盖 Remotipart 渲染?
我正在尝试在 Rails 中创建一个 CSV 文件以供下载,并且无法让它只发送没有数据标签的 CSV。在我的控制器中,我有:
运行它的表单有:
当我按“查找匹配项”时,系统会提示我下载一个 csv 文件,但第一行有:
文件以
(遗留)代码使用remotipart - 似乎我需要阻止它覆盖渲染并添加textarea。我怎样才能获得干净的 CSV 下载?谢谢!
javascript - 如何使用带有回形针的 remotipart 上传图像并实时显示
这是我的代码
远程咖啡
_form.haml 来自帖子
响应为 JS
show.js.coffee
渲染_post.haml
请帮助我对不起我的英语
ruby-on-rails - AJAX上的Rails未知格式
我正在尝试使用remotipart
gem 实现一个非常简单的文件表单。我的大部分文件与教程文件完全相同:
时间线.html.erb:
Briefs_controller.rb
new_feed.js.erb
但是每次我提交表单时,我都会在日志中收到以下错误:
我错过了什么 ?我知道 ajax 文件上传在 RoR 上可能很棘手,但 remotipart 似乎是一个可行的解决方案。
编辑我设法通过添加解决了第一个问题:format => "js"
,但现在我面临另一个问题:没有发送任何表单数据。事实上,这里是发送的参数: