📅  最后修改于: 2023-12-03 15:04:46.899000             🧑  作者: Mango
在一个Web应用程序中,经常需要处理上传图像的功能。Rails Active Storage是一种用于处理文件上传和附件的Ruby on Rails库。本文将介绍如何在Rails Active Storage中获取图像URL。
在我们可以获取图像URL之前,我们需要首先将图像保存到Active Storage中。下面是一个示例:
class Post < ApplicationRecord
has_one_attached :image
end
上面的示例代码使用Active Record的“has_one_attached”方法在“Post”模型中创建一个附加文件。在这种情况下,我们称之为“image”。
要将图像上传到Active Storage中,请在“create”或“update”操作中使用以下代码:
@post = Post.new(post_params)
@post.image.attach(params[:post][:image])
上面的代码将文件附加到“image”对象中。在视图中,我们通过以下方式向用户提供上传表单:
<%= form_with model: @post, local: true do |form| %>
<%= form.file_field :image %>
<%= form.submit 'Create' %>
<% end %>
要获取已上传图像的URL,请使用以下代码:
<%= image_tag @post.image.variant(resize: "100x100") %>
上面的代码将图像变体的URL插入到标记中。这个特殊的附带处理程序根据指定的规范进行图像处理,resize: "100x100"表示将图像调整为100×100像素大小。
Rails Active Storage是一个非常强大的附件处理库,允许您轻松上传和处理附件。在本教程中,我们了解了如何将图像上传到Active Storage中,以及如何获取最终的URL。希望这个教程能够帮助你在你的Web应用程序中添加图片上传和附件处理功能。