问题标签 [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.
ruby-on-rails - 如何在 Rails 应用程序中添加验证以重新归档?
我有我创建的 rails 应用程序,因此我可以使用事物的 API 部分。我可以使用 curl 成功地将文件上传到 rails 应用程序的数据库,但我不知道如何将文件类型/内容类型限制为 CSV。
csv_file.rb #模型
csv_files.rb #控制器
ruby-on-rails - 使用 rails app 中的 refile gem 上传文件时如何保留文件名
我正在尝试保留使用 refile gem 上传到 rails 应用程序的文件的文件名。我在 rails 应用程序中创建了一个 API,以允许通过 curl 上传文件,但是当我有一个文件时,即myfile.csv
我将其上传到 rails 应用程序时,它会以字符散列的名称存储文件,即2HCF3F3...
它也没有t 保留文件扩展名。
我的代码如下所示,
型号 # csv_file.rb
ios - 将文件发送到 Rails API 时如何在 AFNetworking 中设置参数
我为我的 iOS 应用程序创建了一个 API,因此该应用程序可以将csv
文件发送到 API,并将文件存储在服务器上。我正在使用 refile gem 来处理 rails 应用程序中的附件。我正在使用 AFNetworking 从 iOS 应用程序中将文件发送到 rails 应用程序。
当我通过 curl 将文件发送到 API 时,它会填充csv_file_id
数据库中的相应列/字段。但是,当我从 iOS 中的应用程序发送文件时,csv_file_id
是null
. 我需要一个令牌出现在csv_file_id
字段中才能检索文件,即根据重新归档文档对文件执行 GET 请求。
所以我的问题是如何csv_file_id
从 iOS 应用程序中填充该字段?
iOS 应用程序代码示例
上面的代码示例将放入""
该csv_file_id
字段,该字段有效,但我无法生成有效的 URL 来获取文件。
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
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 - Rails 4 Refile 和邮件程序
我正在使用 refile gem 上传文件。文件上传后会通过电子邮件发送给某些收件人。
1) 如何将使用 refile 存储的文档作为附件添加到邮件中?下面它不工作
我在数据库中有以下内容:
附上文件:
错误:没有将 Refile::File 隐式转换为 String
2) 我可以动态更改存储文件的位置吗?
ruby-on-rails - Rails - Refile Gem - 未定义的方法`file_id_will_change!
我有一个有很多照片的属性模型。我正在尝试使用refile gem上传图像。
这是 schema.rb 的照片部分
这是创建新属性表单的相关部分(slim)
这是属性控制器
提交表单后,我收到以下错误。
挠了一阵头后,我看不出我在哪里搞砸了。
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 日志片段:
ruby-on-rails - 如何使用 refile ActiveRecord::RecordNotFound 删除附件
我正在尝试删除/销毁我使用 refile gem 上传的附件,我目前收到以下错误,
ActiveRecord::RecordNotFound in ImagesController#destroy
Couldn't find Image with 'id'=
images_controller.rb
我试图删除附件的表单/视图看起来像,
显示.html.erb
ruby-on-rails - 重新提交和功能测试
我有一个用户上传文件的页面(我们正在使用 Refile)。现在我有一个类似下面的测试
然后我检查是否应该有成功消息
我尝试显示正在呈现的页面正文以检查正在呈现的 Flash 消息。它总是给我“需要附件”。