ActiveStorage 的默认值 Rails 5.2.0

Default Value for ActiveStorage Rails 5.2.0

我正在使用 Rails ActiveStorage。我希望每当附件的值(在我的例子中图像为 null 然后用资产文件夹中存在的 "abc.png" 替换它..)

这就是我的 model.rb 文件的样子,但这段代码似乎不起作用。我正在寻找如何为头像设置默认值/零值。

      has_one_attached :avatar #bot icon
      after_create_commit check_avatar(self)
      def check_avatar(self)
        if(!self.avatar.present?)
        {
            self.avatar = "abc.png"
        }
      end

活动存储不像回形针那样提供默认选项,但是,您可以编写方法来附加默认文件,以防图像为零。你可以使用附加方法来做到这一点。

def image_nil
     if !self.image?
         user.image.attach(io: File.open('/path/to/file'), filename: 'file.pdf', content_type: 'image/jpeg')
     end
end

您可以省略 content_type,但最好提供它,您提供的内容类型将作为备用,以防分析器无法执行此操作。

希望对您有所帮助!