使用 Active Storage 上传文件后执行操作

Fer*_*ndo 2 ruby-on-rails rails-activestorage

我的模型有一个has_many_attached :photos.

第一次创建此模型时,它有 0 张照片。如果我跑photos.attached?我得到false

当用户上传一些文件到照片时,我需要做一些动作,但只是第一次。我尝试使用before_update :if photos.attached?. 但我需要知道用户是否专门更新照片。

有没有办法知道用户是否正在尝试更新照片?或者有没有一种简单的方法可以做到这一点?

Ant*_*yrd 5

脏吗?你可以使用的方法

class Post < ApplicationRecord
  has_many_attached :photos

  before_update :do_whatever, if: -> { photos.dirty? } 

  def do_whatever
    # doing something
  end
end
Run Code Online (Sandbox Code Playgroud)

你也可以试试 before_update :do_whatever, if: -> { photos_changed? }