问题标签 [carrierwave]

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 投票
1 回答
5690 浏览

ruby-on-rails - 载波裁剪

我有一个 CarrierWave ImageUploader,它创建了几个版本的原始图像,需要根据我的模型中的值(crop_x、crop_y、crop_w 和crop_h)进行裁剪。

我遇到的问题是,如果我们没有任何设置但我不知道将这个逻辑放在哪里,我需要计算一些默认的裁剪值。我尝试将它放在我的照片模型(上传器安装到)中的 before_validation 中,但这似乎是在裁剪函数执行后调用的。我在想它要么需要在 ImageUploader 文件中,要么需要在创建拇指之前发生的一些回调中。

0 投票
4 回答
4341 浏览

ruby-on-rails-3 - Rails 应用程序中用于carrierwave gem 的谷歌存储的存储访问凭证

在我的 rails 3 应用程序中,我使用的是carrierwave gem(0.5.6 版)。我想为开发人员使用 Google Storage 来存储上传的文件。我创建了一个如下所示的初始化程序:

我收到 403 禁止消息

我刚刚使用 apis-console 启用了我的 Google Storage,我可以使用在线“Google Storage Manager”上传文件。对于上面初始化程序文件中的“google_storage_access_key_id”,我在“存储访问”页面中为“您”使用了“Google 存储 ID”。对于“google_storage_secret_access_key”,我使用的是“旧版存储访问密钥”。

我不知道该怎么做。有人可以指点我如何调试这个问题吗?

谢谢, 萨克沙姆

0 投票
1 回答
2346 浏览

ruby-on-rails-3 - 载波错误

我收到如下所示的错误:

在我点击提交注册后。我正在使用 Carrierwave 并已按照步骤使用它,但仍然有错误。

0 投票
0 回答
312 浏览

ruby-on-rails-3 - CarrierWave Resize Image 不显示

当我上传并注册时,图像会覆盖整个页面。当我尝试按照 Carrierwave 使用拇指的说明更改图像设置时,新页面仅显示文本 Thumb_picture_5。并且没有图像。

这是终端错误:

0 投票
3 回答
1344 浏览

ruby-on-rails-3 - 使用 rails 3.1 时设置默认 URL?

我认为新的资产管道正在搞乱 CarrierWave 默认方法。我有我想用作存储为默认图像的文件app/assets/images/listing_defaults/default.png

在我的上传器中,我有以下内容

当我运行我的应用程序时,可以在该地址浏览图像 ( localhost:3000/assets/listing_defaults/default.png)

但是由于某种原因,当我尝试让默认图像显示在我的视图中时,我什么也得不到。

然而上传的文件似乎工作正常。有任何想法吗?

顺便说一句,我尝试将我的 default_url 设置为以下,但没有成功。

0 投票
1 回答
1397 浏览

ruby-on-rails-3 - carrierwave throws "stack level too deep" error on file upload

i have a weired problem and don't now how to debug further...

if i upload an file with my html form i get:

the trace is:

analysing the trace, it seems that the file is uploaded and written to the DB:

but after that it throws the error....

testing carrierwave in the rails console:

works fine!

well, i have a file upload @ another model, so the carrierwave installation works fine (similar uploader).

testing the html form without the file filed, it works fine!

so:

  • Form works without file field
  • carrierwave file upload works in the console
  • different model, similar carrierwave uploader/config => works!

how can i debug further ?

thanks for any help!

Rails 3.0.7/ruby-1.9.2-p180/carrierwave (0.5.3)

EDIT: seems that it happens only on the update action.

controller:

0 投票
1 回答
1691 浏览

ruby-on-rails - Ruby 块语法错误

可能重复:
Ruby 块和未加括号的参数

我不确定我是否理解这个语法错误。我正在使用 Carrierwave 管理 Rails 应用程序中的一些文件上传,我似乎错误地将块传递给其中一种方法。

这是Carrierwave Docs中的示例:

这是我所拥有的:

以上不起作用,我明白了syntax error, unexpected '}', expecting keyword_end。有趣的是,以下工作完美:

所以,我的问题是,为什么do...end在这种情况下我可以使用而不是大括号传递一个块?

谢谢!

0 投票
0 回答
205 浏览

ruby-on-rails - 用于在多个文件上传中做相册的 Rails 示例应用程序或插件/宝石?

我想知道是否有任何 Rails 示例应用程序或插件/宝石用于在多个文件上传中制作相册?它可以具有基本功能,例如创建/编辑包含多个文件上传的相册。

0 投票
3 回答
11171 浏览

ruby-on-rails - CarrierWave:为所有版本化文件创建相同的唯一文件名

在我详细介绍之前,我要直截了当:有没有人想出一种方法让 Carrierwave 将文件保存为时间戳或每个文件唯一的任意字符串?

默认情况下,Carrierwave 将每个文件及其替代版本保存在其自己的目录中(以型号 ID 号命名)。我不喜欢这个,因为不是一个有 1,000 个的目录,而是为了使用大整数,文件(在我的例子中是图片)在其中我们得到一个有 1,000 个子目录的目录,每个子目录有一个或两个文件。呸。

现在,当您将 Uploader 的store_dir方法覆盖为如下所示时:

你最终得到了我想要的确切行为。所有文件(图片)都进入一个快乐的大文件夹。当对象被删除时,没有更多的子文件夹存在。

只有一个问题。文件冲突。如果你上传了两次delicious_cake.jpg,第二个将覆盖第一个,即使它们是两张不同的美味蛋糕图片!这就是为什么该store_dir方法在/#{model.id}它返回的值的末尾加上了额外的原因。

那么该怎么办?在阅读了一下之后,我发现在生成的上传文件中有一个明显的解决方案被注释掉了。

经过一番搜索,我发现有人做了以下事情

这让我想,为什么不这样做

就在那时,事情变得非常糟糕。这样做的问题是,filename显然每个版本的文件都会被调用,所以我们最终会得到像 1312335603175322.jpg 和 thumb_1312335603195323.jpg 这样的文件名。注意到细微的差别了吗?每个文件名都基于filename该特定版本的调用时间。那根本行不通。

我接下来厌倦了使用model.created_at时间戳的基础。只有一个问题,第一个版本返回 nil,因为它还没有被放入数据库。

经过进一步思考,我决定在我的图片控制器中尝试以下操作。

这会在 Carrierwave 到达之前覆盖 original_filename 属性,使其成为时间戳。它正是我想要的。文件的原始版本以 1312332906940106.jpg 之类的名称结束,而缩略图版本(或任何其他版本)以 thumb_1312332906940106.jpg 之类的名称结束。

但是,这似乎是一个可怕的黑客攻击。这应该是模型的一部分,或者更好的是安装在模型上的上传器的一部分。

所以,我的问题是,有没有更好的方法来实现这一目标?我是否错过了一些重要的 Carrierwave 使这变得容易?有没有一种不那么明显但更清洁的方式来解决这个问题?工作代码很好,但不难闻的工作代码更好。

0 投票
3 回答
4574 浏览

ruby-on-rails - 通过 Carrierwave 配置环境以在 Amazon S3 上使用不同的存储路径

我想在我的 S3 存储桶中有不同的文件夹,以使生产数据库远离开发环境。我不知道该怎么做,这是我在载波初始化程序中提出的骨架: