2

Paperclip 提供以下代码:

has_attached_file :image, 
...
...

这在多个模型中重复。

提取到模块:

module AttachedImage
  include Paperclip::Glue

  has_attached_file :image, 
  ...
  ...

引发Exception encountered: #<NoMethodError: undefined method 'class_attribute' for AttachedImage:Module>异常。

这是什么意思?如何混入回形针has_attached_file代码?有没有更好的方法来消除重复?

4

1 回答 1

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
于 2014-01-13T03:40:43.823 回答