我有很多来自回形针的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
答案 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.
并将此代码放入初始化程序。