模型不保存Paperclip头像数据

时间:2016-06-13 11:02:38

标签: ruby-on-rails ruby ruby-on-rails-4 paperclip uri

我有一个Rails 4应用程序可以抓取给定的网页并将数据保存在Link模型中。

我将Paperclip gem与after_save回调结合使用以获取图像的网址,然后将其上传到AWS S3。这一切都很好,我可以在我的S3桶中查看图像。

我遇到的问题是,数据库中的avatar_file_nameavatar_content_typeavatar_file_sizeavatar_updated_at列保持nil,就好像没有{{} 1}}附加了:avatar

Link

link.rb:

更新:使用控制器代码

class Link < ActiveRecord::Base

  after_save :picture_from_url

  has_attached_file :avatar, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.png"
  validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/

...

    def picture_from_url
      self.avatar = URI.parse(self.image_url)
    end

end

1 个答案:

答案 0 :(得分:0)

我解决了。

Link未获取更新的avatar信息,因为任何类型的保存操作都没有保留数据。所以,如果我这样做:

def picture_from_url
  self.avatar = URI.parse(self.image_url)
  self.save
end

一切都很好用。很高兴收到一些关于在我的模型中调用self.save的反馈。它闻起来像我。