【发布时间】:2017-12-03 14:58:55
【问题描述】:
大家好。
这是我在这里的第一篇文章(可能不是最后一篇……)
我正在构建一个 Rails 应用程序,管理员可以在其中创建配方。每个食谱都列在一个索引上,管理员可以添加诸如标题、成分、您在食谱上花费的时间等内容...
现在我希望能够上传这个食谱的图片。
由于我不知道如何实现这一点,我决定从头开始一个新的应用程序,其中有一个用户名和图片。
我已经实现了为用户(头像)上传图片的基本上传表单:
<%= f.file_field :image %>
正如标题中提到的,此上传在亚马逊 S3 上进行。我在 MiniMagick 的帮助下使用“fog-aws”宝石槽载波以我想要的方式显示图像。还有“figaro”宝石来隐藏我的亚马逊 s3 ID。
我还尝试使用同一进程更新多个文件。 这很好用。您可以在此页面上找到我关注的教程:HERE
但是用户必须等待,并且在上传图片的同时屏幕上并没有真正发生任何事情。也许用户可能会认为出现问题并离开页面并最终感到沮丧或其他什么。
这就是我想到使用jQuery File Upload for rails的原因。
问题是所有教程都非常过时,我找不到任何东西可以正常工作(s3、carrierwave、jquery)。我找到的教程是 2013 年左右的......找不到任何相关的东西。
this one 除外。即使(再次)是从 2014 年开始。
此脚本允许您一次上传多个文件并删除它们等...只需将代码粘贴到任何视图中即可。我试过了,但有很多问题,第一个是这样的:
<%= javascript_include_tag 'jquery.iframe-transport.js' %>
<%= javascript_include_tag 'jquery.fileupload.js' %>
<%= javascript_include_tag 'jquery.fileupload-ui.js' %>
当我尝试代码时,我得到了这个错误:
The asset "jquery.iframe-transport.js" is not present in the asset pipeline.
我认为没有必要,因为您应该能够使用此 //= 需要 jquery-fileupload 从 application.js 文件中获取它,对吧?
当我删除这些行时,脚本正在加载,但它看起来像这样:
如您所见,您可以选择文件,但它应该显示如下图。
只有取消按钮在工作并删除小时
这意味着我猜的“图片”。但是上传和删除不起作用,复选框也是如此。
任何人都可以帮助我以某种方式完成这项工作吗?
问题可能来自 s3 ?还是脚本问题?我从来没有编写过 java 代码,所以我真的看不出它在哪里可能是错误的。
如果有人可以帮助或至少向我展示我将不胜感激的方式。
谢谢
【问题讨论】:
-
Rails 5 的哪个特定版本?是 5.0.0.1 还是 5.1?从 5.1 版开始,Rails 不再支持 jQuery,您可能需要使用 Yarn 重新安装它。 Here 是怎么做的。
-
是的,抱歉,忘了告诉版本。我正在使用 rails 5.1.4 是的。我会检查你的链接谢谢。
-
编辑:如果我重新安装everytning,我只需复制/粘贴我的文件就可以了?或者它是如何工作的。我知道 Rails 适合这种纱线和 webpack。这一切是什么?是以更好的方式处理javascript还是?对不起,如果这些是愚蠢的问题。我也发现了这个:Webpacker。有用吗?
-
没错。他们的Github page 上也有说明。至于 Yarn 和 Webpack,它们本质上是 Javascript 的模块打包器。将它们视为 Ruby 资产管道。他们基本上把许多 JS 文件打包成一个 bundle.js,然后为你缩小它们。
标签: amazon-s3 ruby-on-rails-5 carrierwave jquery-fileupload-rails