Paperclip提供以下代码:
has_attached_file :image,
...
...
在多个模型中重复。
提取到模块:
module AttachedImage
include Paperclip::Glue
has_attached_file :image,
...
...
引发Exception encountered: #<NoMethodError: undefined method 'class_attribute' for AttachedImage:Module>
例外。
这是什么意思?如何混合使用Paperclip has_attached_file
代码?有没有更好的方法来消除重复?
答案 0 :(得分:3)
我刚才正在寻找类似的解决方案,并提出以下建议:
module AttachedFileModule
extend ActiveSupport::Concern
included do
attr_accessible :avatar
extend Paperclip::Glue
has_attached_file :avatar,
:styles => { :medium => "300x300>", :thumb => "100x100>" },
:default_url => "/images/:style/missing.png"
end
end
正如您在上面的代码中看到的,我们必须扩展ActiveSupport::Concern
,因此我们可以使用attr_accessible
方法。我们还必须扩展Paperclip::Glue
,以便我们可以使用has_attached_file
方法。
然后在模型中,您要将图像附加到:
class User < ActiveRecord::Base
include AttachedFileModule
end