Rails Image Conditional 在 Heroku 产品中不起作用
Rails Image Conditional Won't Work in Heroku Production
我不得不重新配置我的上传器。我正在使用 carrierwave
和 minimagick
。所以简而言之,我在最初上传图片时会自动 processed/resized。现在我不想自动处理它们,我保留原始大小并为调整大小的图像创建一个名为 normal
的版本。
现在一些上传的图片会有normal
版本。但是在重新配置之前上传的图像不会。为了避免损坏图像,我创建了一个在开发中效果很好的条件。
<% if car.picture_attachments.first.picture.normal.present? %>
<%= image_tag(car.picture_attachments.first.picture.normal.url) %>
<% else %>
<%= image_tag(car.picture_attachments.first.picture) %>
<% end %>
但在 Heroku 中 - 它认为每个对象都有一个 normal
版本,结果提供了一堆损坏的图像。我正在使用 Amazon S3 - 知道为什么会这样吗?
必须使用这个:
<% if car.picture_attachments.first.picture.normal.file.exists? %>
present?
和 exists?
之间的区别很重要。在此处查看差异:
注意 exists?
比 present?
慢得多,因为它会检查每个实例的数据库。
我不得不重新配置我的上传器。我正在使用 carrierwave
和 minimagick
。所以简而言之,我在最初上传图片时会自动 processed/resized。现在我不想自动处理它们,我保留原始大小并为调整大小的图像创建一个名为 normal
的版本。
现在一些上传的图片会有normal
版本。但是在重新配置之前上传的图像不会。为了避免损坏图像,我创建了一个在开发中效果很好的条件。
<% if car.picture_attachments.first.picture.normal.present? %>
<%= image_tag(car.picture_attachments.first.picture.normal.url) %>
<% else %>
<%= image_tag(car.picture_attachments.first.picture) %>
<% end %>
但在 Heroku 中 - 它认为每个对象都有一个 normal
版本,结果提供了一堆损坏的图像。我正在使用 Amazon S3 - 知道为什么会这样吗?
必须使用这个:
<% if car.picture_attachments.first.picture.normal.file.exists? %>
present?
和 exists?
之间的区别很重要。在此处查看差异:
注意 exists?
比 present?
慢得多,因为它会检查每个实例的数据库。