问题标签 [rails-activestorage]

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 投票
4 回答
15250 浏览

ruby-on-rails - 如何在 ActiveStorage (Rails 5.2) 中更新附件

我最近将我的项目升级到最新的 Rails 版本(5.2)以获得ActiveStorage- 一个处理附件上传到 AWS S3、Google Cloud 等云服务的库。

几乎一切正常。我可以上传和附加图片

并收到它

但现在我想替换/更新用户的头像。我以为我可以跑

再次。但这会引发错误:

那应该是什么意思?如何更改用户头像?

0 投票
2 回答
1528 浏览

ruby-on-rails - Rails - 如何利用 Active Storage JavaScript 事件

我正在使用RubyonRails 的Active Storage,似乎在提交表单时会执行某些 JavaScript 事件(至少这是我的理解),我正在尝试收听这些事件。

我的表单非常简单,只是一个输入字段和图像字段

application.js文件中,我添加了以下代码来测试会发生什么,但不幸的是我的尝试都不起作用

当我提交表单时,尽管数据已保存在数据库中,但我的事件侦听器没有侦听该事件,因为我没有收到任何警报。

所以我的问题是

提交表单时如何监听这些Active Storage javascript 事件?

任何帮助将不胜感激。

0 投票
7 回答
19322 浏览

ruby-on-rails - 如何在 Rails 中正确使用 ActiveStorage 进行模型测试?

我刚刚切换到在 rails 5.1.4 上使用 ActiveStorage,我是 TDD 的新手,正在努力弄清楚如何测试一个模型has_one_attached :avatar

但我收到以下错误:

有什么提示吗?

0 投票
2 回答
2854 浏览

ruby-on-rails-5 - Rails 5.2 带有 Cocoon 表单的 Active Storage

我想使用带有 Active Storage 的动态茧表单将一些图像保存到模型中来处理文件。

我有一个农夫班,里面有很多苹果,农夫可以通过农夫表格为每个不同种类的苹果添加多个图像。

在农夫控制器内部,我有:

我的观点我刚刚将它添加到我的茧领域

accepts_nested_attributes_for现在,一旦农夫对象被保存,cocoon 将使用调用保存苹果属性。apple_images在我尝试将其添加到表单之前,这一切都很好。

阅读 Active Storage 自述文件,我看到它建议您应该在保存项目后立即附加文件。

你可以在这里阅读自述文件

但简而言之,如果您想要控制器中的单个图像,请执行以下操作:

或者如果你想要多个图像:

当图像直接在我保存在控制器中的模型上时,这似乎相当简单。

起初,我认为这可能就像将 apple_images 添加到参数中一样简单,如下所示:

但这会返回一个错误:

我正在考虑在苹果模型上使用 after_save 回调来在苹果对象更新/创建后附加图像。虽然我也不确定如何实现这一点。

感觉有点失落,任何想法或建议将不胜感激

编辑

这是更新时参数的样子:

0 投票
2 回答
1794 浏览

ruby-on-rails - 是否可以将 ActiveStorage 配置为在附加文件后立即开始上传,而不是在单击提交按钮时开始上传?

我喜欢 Rails 5.2 中用于文件上传的新 ActiveStorage 模块的外观,但在我为我的网站重写大量代码之前,看起来上传只有在用户单击提交按钮时才开始。

有谁知道 ActiveStorage 是否可以配置为在附加文件后立即上传?

0 投票
2 回答
1680 浏览

ruby-on-rails - 无法在 Rails 中使用 ActiveStorage 创建文件字段

我正在尝试在 Rails 5.2 中使用 Active Storage。我发现我应该file在迁移中创建类型为字段,但是我有一个错误:

移民:

我试图创建字符串字段,但它不起作用。

在官方文档中找不到任何相关内容

我有活动存储迁移,我通过了

0 投票
2 回答
1086 浏览

ruby-on-rails - 如何在heroku上安装mupdf?

我已经升级到 rails 5.2 并且正在实施 ActiveStorage。ActiveStorage 使用 mutool 进行 PDF 处理。我已经使用自制软件在本地成功安装了 mutool。

我已经按照以下步骤在heroku上成功安装了apt和mupdf:

mupdf 在推送期间构建成功

如果我刷新页面以调用 PDF 上的变体,则图像无法处理并且作业会返回以下错误:

似乎 mutool 和 mupdf 是同义词...所以,我尝试在我的 Aptfile 中将 mutool 换成 mupdf...未能从“...未找到”构建。

有人知道我需要采取什么行动吗?

PS:这是使用 ActiveStorage 实现 rails 5.2 的一部分。

更新

我将 mupdf-tools 添加到 Aptfile 中,这似乎解决了“没有这样的文件或目录”错误。我不确定,因为出现了新的错误

0 投票
7 回答
29465 浏览

ruby-on-rails - ActiveStorage 文件附件验证

有没有办法使用 ActiveStorage 验证附件?例如,如果我想验证内容类型或文件大小?

像回形针的方法会很棒!

0 投票
2 回答
5694 浏览

ruby-on-rails - Active Storage 引发 ActiveSupport::MessageVerifier::InvalidSignature

为了使用 Active Storage 将图像文件导入 Rails 应用程序,我编写了这样的 Rake:

当我执行这个任务时,我得到了一个 Exception ActiveSupport::MessageVerifier::InvalidSignature

我怎样才能避免这个错误?

模型源代码Post为:

我使用默认的config/storage.yml.

Rails 的版本是 5.2.0.beta2。

0 投票
3 回答
6461 浏览

ruby-on-rails - 将 ActiveStorage blob 作为 blob 获取

我正在构建一个 Rails 应用程序,它允许用户直接在浏览器中访问某些上传的文件,但与实际文件的 URL 不同。这样可以通过强制登录来保护文件。

因此,例如,您可以访问以下位置的文件:domain.com/file/19371da

过去,我通过使用 CarrierWave 完成此操作,然后to_blob对文件本身进行操作,然后使用send_data和使用数据库中存储的有关文件的数据将其发送回:

然而,当使用新的 Active Storage 作为 CarrierWave 的潜在替代品时,我在将实际文件本身作为 blob 传递给该send_data方法时遇到了困难。

例如

它给出了一个错误undefined method 'to_blob' for #<ActiveStorage::Attached::One:0x007f8f23ca2718>

如何在 Active Storage 中将实际文件作为 blob 获取?