Tag: rails activestorage

Activestorage固定装置附件

在铁轨测试中。 我有一个只有activestorage的基本模型: class User < ApplicationRecord has_one_attached :avatar end 我正试图让它成为固定装置,但没有运气(我确实有一个图像): # users.yml one: avatar: 如何通过灯具正确附加头像文件?

更改ActiveStorage控制器路径

有没有办法自定义附件url而不是 /rails/active_storage/representations/ /rails/active_storage/blobs/ 我们可以这样: /custom_path/representations/ /custom_path/blobs/

Rails 5.2 Active Storage清除/删除附件

所以我使用Active Storage上传附加到Collection模型的多个图像。 除非我试图从集合中清除/删除单个附件,否则一切都很顺利。 问题:出于某种原因,每当我加载集合的显示页面时,我的所有图像都会立即被清除/删除。 当然,我只想在点击链接时删除文件。 有谁知道如何解决这个问题? 我的collections展示视图: 我已经阅读了http://edgeguides.rubyonrails.org/active_storage_overview.html#removing-files上的文档(参见第4段) 但遗憾的是,这并未提供有关如何专门使用purge或purge_later方法的任何信息。 编辑目前将我的代码更改为此(仍然遗憾地无效): 在我的collections_controller.rb中有这个 def delete_image_attachment @image = ActiveStorage::Blob.find_signed(params[:id]) @image.purge redirect_to root_path end 在我尝试删除附加图像后,这给了我这个错误: 服务器日志: Started DELETE “/collections/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBYdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19–3e75276d414b4c2040e02cf0afbc083e2337faa0/delete_image_attachment” for ::1 at 2018-03-29 19:06:55 +0200 Processing by CollectionsController#delete_image_attachment as HTML Parameters: {“authenticity_token”=>”60zIkeknxRYp/sJIWNwF+BrEftYHSCQvak34h8FkadPXgVPQSXN/sCoxI/6FU+jZbqQitES81fyqkmIx6XYp6w==”, “id”=>”eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBYdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19–3e75276d414b4c2040e02cf0afbc083e2337faa0”} ActiveStorage::Blob Load (0.1ms) SELECT “active_storage_blobs”.* FROM “active_storage_blobs” WHERE “active_storage_blobs”.”id” = $1 LIMIT $2 [[“id”, 90], [“LIMIT”, […]

使用activestorage直接上传时如何在上传到S3时指定前缀?

使用标准S3配置: AWS_ACCESS_KEY_ID: [AWS ID] AWS_BUCKET: [bucket name] AWS_REGION: [region] AWS_SECRET_ACCESS_KEY: [secret] 我可以使用此Rails 5.2代码将文件上传到S3(使用直接上传)(仅显示相关代码): form.file_field :my_asset, direct_upload: true 在提交表单后,这将有效地将我的资产置于我的S3存储桶的根目录中。 如何指定前缀(例如“development /”,以便我可以模仿S3上的文件夹)?

如何获取Active Storage映像的URL

我想通过api获取带有附加图像的记录列表作为链接或文件。 我有一个简单的模型: class Category < ApplicationRecord has_one_attached :image validates :name, presence: true, uniqueness: true end 接下来的行动: def index @categories = Category.all.with_attached_image render json: @categories.to_json(include: { image_attachment: { include: :blob } }) end 这是我获得图像对象的唯一方法。 我看到下一个结果: {“id”:4,”name”:”Cat1″,”description”:””}, {“id”:1,”name”:”Cat2″,”description”:””,”image_attachment”: {“id”:8,”name”:”image”,”record_type”:”Category”,”record_id”:1,”blob_id”:8,”created_at”:”2018-06-09T13:45:40.512Z”,”blob”: {“id”:8,”key”:”3upLhH4vGxZEhhf3TaAjDiCW”,”filename”:”Screen Shot 2018-06-09 at 20.43.24.png”,”content_type”:”image/png”,”metadata”: {“identified”:true,”width”:424,”height”:361,”analyzed”:true},”byte_size”:337347,”checksum”:”Y58zbYUVOlZRadx81wxOJA==”,”created_at”:”2018-06-09T13:45:40.482Z”}}}, … 我可以在这里看到文件名。 但是文件存在于不同的文件夹中,对我而言,它似乎不是一种获取和链接到文件的便捷方式。 我找不到任何关于此的信息。 更新 根据iGian解决方案,我的代码变为: def index @categories = Category.all.with_attached_image render […]

Rails 5.2 Active Storage添加自定义属性

我有一个带附件的模型: class Project < ApplicationRecord has_many_attached :images end 当我附加并保存图像时,我还想保存一个附加的自定义属性 – display_order (整数)和附加的图像。 我想用它来对附加的图像进行排序,并按照我在此自定义属性中指定的顺序显示它们。 我已经回顾了#attach方法的ActiveStorage源代码以及ActiveStorage::Blob模型,但看起来没有内置方法来传递一些自定义元数据。 我想知道,使用ActiveStorage解决这个问题的惯用方法是什么? 在过去,我通常会将一个display_order属性添加到ActiveRecord模型中,该模型代表我的附件,然后只需将它与.order(display_order: :asc)查询一起使用。