0

在我的应用程序中,有许多带有载波上传器的条目,其中上传的文件已经消失。我想在rake任务中解决这个问题,但我无法将这些上传者设置为nil或删除它们。一个典型的会话如下:

[43] pry(main)> article
=> #<Product id: 80, name: "Barcelona", ambient_picture: "ambient.jpg", special: false, slug: "barcelona", image: "image.jpg">
[44] pry(main)> article.remove_ambient_picture!
=> nil
[45] pry(main)> article
=> #<Product id: 80, name: "Barcelona", special: false, slug: "barcelona", image: "image.jpg">
[46] pry(main)> article.save
   (0.2ms)  BEGIN
   (0.1ms)  COMMIT
=> true

等等令人作呕——似乎没有任何帮助。引用 remove 方法似乎更像是其他回调的集线器,因此它可能仅在文件实际存在时才有效。

那么在这种情况下我该怎么办呢?

4

1 回答 1

1

所以现在我求助于这个:

    unless article.ambient_picture?
      p "Removing #{article.ambient_picture}"
      sql = ActiveRecord::Base.connection()
      sql.update "UPDATE articles SET ambient_picture=null WHERE id=#{article.id}"
    end

我知道这并不理想,所以出于好奇,我仍然欢迎提出建议,如何以更明智的方式处理。

于 2012-11-17T15:21:19.127 回答