问题标签 [refile]

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.

0 投票
2 回答
549 浏览

ruby-on-rails - 如何在 Rails 应用程序中添加验证以重新归档?

我有我创建的 rails 应用程序,因此我可以使用事物的 API 部分。我可以使用 curl 成功地将文件上传到 rails 应用程序的数据库,但我不知道如何将文件类型/内容类型限制为 CSV。

csv_file.rb #模型

csv_files.rb #控制器

0 投票
0 回答
275 浏览

ruby-on-rails - 使用 rails app 中的 refile gem 上传文件时如何保留文件名

我正在尝试保留使用 refile gem 上传到 rails 应用程序的文件的文件名。我在 rails 应用程序中创建了一个 API,以允许通过 curl 上传文件,但是当我有一个文件时,即myfile.csv我将其上传到 rails 应用程序时,它会以字符散列的名称存储文件,即2HCF3F3... 它也没有t 保留文件扩展名。

我的代码如下所示,

型号 # csv_file.rb

0 投票
1 回答
189 浏览

ios - 将文件发送到 Rails API 时如何在 AFNetworking 中设置参数

我为我的 iOS 应用程序创建了一个 API,因此该应用程序可以将csv文件发送到 API,并将文件存储在服务器上。我正在使用 refile gem 来处理 rails 应用程序中的附件。我正在使用 AFNetworking 从 iOS 应用程序中将文件发送到 rails 应用程序。

当我通过 curl 将文件发送到 API 时,它会填充csv_file_id数据库中的相应列/字段。但是,当我从 iOS 中的应用程序发送文件时,csv_file_idnull. 我需要一个令牌出现在csv_file_id字段中才能检索文件,即根据重新归档文档对文件执行 GET 请求。

所以我的问题是如何csv_file_id从 iOS 应用程序中填充该字段?

iOS 应用程序代码示例

上面的代码示例将放入""csv_file_id字段,该字段有效,但我无法生成有效的 URL 来获取文件。

0 投票
0 回答
420 浏览

ruby-on-rails - 如何在 Rails 应用程序中编辑/销毁使用 refile 上传的附件

如何在 rails 应用程序中编辑/销毁通过 refile 上传的附件?我可以从 curl 成功创建附件,但我不知道如何删除它们。我在这里阅读了关于删除附件的重新文件文档,https://github.com/refile/refile#removing-attached-files但是当我加载以下 URL http://localhost:3000/api/csv_files/1/编辑它正在向我的浏览器发送 JSON 响应,并且 rails 应用程序没有呈现edit.html.erb模板,而是呈现edit.json.jbuilder模板。

# csv_files_controller.rb

0 投票
0 回答
667 浏览

ruby-on-rails - 通过 AJAX 上传 rails 文件,涉及 refile 和 remotipart + private_pub

我有一个带有实时聊天功能的 Rails 应用程序(1v1)。我想通过 AJAX 实现文件上传功能,在提交文件上传表单时,文件名将显示在聊天中,而无需重新加载整个页面。

我正在尝试使用 remotipart gem 来通过 AJAX 提交 refile 文件上传表单。文件直接上传到 S3,所以那些根本不会打到我的应用程序(我不需要显示它们),我只是通过聊天将文件名/U​​RL 发送给其他用户。

由于 refile gem,当我选择文件时,这些上传就开始了。因此,当我提交(“发送文件”按钮)表单时,它只是将文件属性(message.message_attachment/id、url、大小等)和 message_id 保存到数据库中。

在此处输入图像描述在此处输入图像描述在此处输入图像描述

在图片上你可以看到我想要实现的。聊天输入文本(message.body)有一个单独的表单,文件上传有另一个表单(message.message_attachment)。到目前为止,聊天与 private_pub gem 完美配合。选择文件也正确发生(包括将文件上传到 S3 和 204 状态响应),但提交表单(通过单击“发送文件”将消息保存到数据库)仅适用于整页重新加载。

我尝试的解决方案:

  1. 如果我没有将 'authenticity_token: true' 放入表单助手中进行上传,那么我会收到无效的 authencity token 错误。
  2. 如果我正在使用与聊天正常工作的消息控制器,那么我会在表单中收到缺少模板错误。
  3. 如果我把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 提交文件表单

0 投票
1 回答
144 浏览

ruby-on-rails - Rails 4 Refile 和邮件程序

我正在使用 refile gem 上传文件。文件上传后会通过电子邮件发送给某些收件人。

1) 如何将使用 refile 存储的文档作为附件添加到邮件中?下面它不工作

我在数据库中有以下内容:

附上文件:

错误:没有将 Refile::File 隐式转换为 String

2) 我可以动态更改存储文件的位置吗?

0 投票
1 回答
341 浏览

ruby-on-rails - Rails - Refile Gem - 未定义的方法`file_id_will_change!

我有一个有很多照片的属性模型。我正在尝试使用refile gem上传图像。

这是 schema.rb 的照片部分

这是创建新属性表单的相关部分(slim)

这是属性控制器

提交表单后,我收到以下错误。

挠了一阵头后,我看不出我在哪里搞砸了。

0 投票
1 回答
179 浏览

ruby-on-rails-3 - 当我向 Heroku 推送新的提交时,重新提交 Gem 图像链接中断

我的应用程序正在使用以下宝石:

我的应用程序所做的是将图像文件上传到 AWS S3 实例,然后使用 Refile gem 中的辅助方法进行检索。

当我在本地运行它时,一切都按预期工作。

问题是当我将我的应用程序推送到 Heroku 时,我可以上传图片并正确显示。但是,当我向 Heroku 推送更新的提交时,之前所有图像的链接都会中断。

我检查了页面上图像的 file_id 是否与 Heroku 数据库中图像的 file_id 相同。

这是我的图片上传表单:

这是我显示的图片片段:

我已经在 Heroku 上正确设置了我的环境变量,以便它知道我的 AWS 实例的密钥(访问密钥 ID、秘密访问密钥和存储桶名称)。

这是上传到 S3 的访问器:

我注意到的另一件事是,如果我通过 Heroku 应用程序上传,我的 S3 存储桶没有将图像保存在正确的文件夹中。但是,如果我使用本地服务器上传图像,我可以在我的 S3 存储桶中看到该图像。我不知道为什么,因为所有的环境变量都是正确的,我已经仔细检查过了。

这是尝试加载图片的 Heroku 日志片段:

0 投票
1 回答
336 浏览

ruby-on-rails - 如何使用 refile ActiveRecord::RecordNotFound 删除附件

我正在尝试删除/销毁我使用 refile gem 上传的附件,我目前收到以下错误, ActiveRecord::RecordNotFound in ImagesController#destroy

Couldn't find Image with 'id'=

images_controller.rb

我试图删除附件的表单/视图看起来像,

显示.html.erb

0 投票
1 回答
160 浏览

ruby-on-rails - 重新提交和功能测试

我有一个用户上传文件的页面(我们正在使用 Refile)。现在我有一个类似下面的测试

然后我检查是否应该有成功消息

我尝试显示正在呈现的页面正文以检查正在呈现的 Flash 消息。它总是给我“需要附件”。