首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails模型中访问ActiveStorage诱惑文件?

如何在Rails模型中访问ActiveStorage诱惑文件?
EN

Stack Overflow用户
提问于 2020-02-16 19:10:12
回答 1查看 793关注 0票数 2

在用Rails的ActiveStorage上传图片之前,我正在尝试调整图片的大小。下面的控制器操作就像一种魅力:

代码语言:javascript
复制
class CatsController < ApplicationController

  require 'mini_magick'

  def create
    @cat = current_user.cats.new(cat_params)

    params[:cat][:images].each do |image|
      mini_image = MiniMagick::Image.new(image.tempfile.path)
      mini_image.resize '1200x1200'
    end

    if @cat.save
      ...
    end
  end

end

但我想保持我的控制器瘦身,并将此功能转移到模型。但是当我这样做时,Rails无法在模型中找到tempfile

在模型中根本没有访问tempfile的方法吗?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-17 05:00:15

或者,您可以创建一个服务。

代码语言:javascript
复制
# app/services/image_resizer.rb

class ImageResizer
  def self.call(images, size)
    Array(images).each do |image|
      i = MiniMagick::Image.new(image.tempfile.path)
      i.resize size
    end
  end
end

代码语言:javascript
复制
def create
  @cat = current_user.cats.new(cat_params)
  ImageResizer.call(params[:cat][:images], '1200x1200')

  if @cat.save
    ...
  end
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60252184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档