Paperclip:default_url

时间:2014-05-27 09:27:13

标签: ruby-on-rails paperclip

我有很多来自回形针的has_attached_file方法但没有:default_url的文件;现在我想为所有这些图像使用相同的图像,但我不想从一个文件到另一个文件,并为每个文件添加此:default_url行。有一些解决方案可以在一个地方设置它,并将适用于所有has_attached_file方法调用? 我试图用这种方式做,但似乎没有任何影响

module Paperclip
  module ClassMethods
    def has_attached_file(name, options = {})
      options[:default_url] => Rails.root + "/missing.png"
      HasAttachedFile.define_on(self, name, options)
    end
  end
end

1 个答案:

答案 0 :(得分:1)

您即将成功 - 只需将options[:default_url] => Rails.root + "/missing.png"更改为options[:default_url] = Rails.root + "/missing.png"=而不是=>)。

但是,我建议采用更好的解决方案:

module Paperclip
  module ClassMethods
    def has_attached_file_with_preconfigured_default_url(name, options = {})
      options.reverse_merge! default_url: Rails.root + "/missing.png"
      has_attached_file_without_preconfigured_default_url(name, options)
    end
    alias_method_chain :has_attached_file, :preconfigured_default_url
  end
end

# Now you could use both new has_attached_file and old has_attached_file_without_preconfigured_default_url.

并将此代码放入初始化程序。