ActiveStorage Rails 5.2.0的默认值

时间:2018-06-10 09:18:56

标签: ruby-on-rails activerecord ruby-on-rails-5 rails-activestorage

我正在使用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

1 个答案:

答案 0 :(得分:2)

活动存储不提供回形针那样的默认选项,但是,如果图像为零,您可以编写方法来附加默认文件。您可以使用attach方法。

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,但是最好提供它,如果分析器无法做到这一点,您提供的内容类型将作为备用。

希望这会有所帮助!