我创建了一个 ActiveSupport::Concern,并在 ClassMethods 方法中从 Carrierwave 调用 mount_uploader 方法
/lib/my_concern.rb
require 'active_support/concern'
module MyConcern
extend ActiveSupport::Concern
included do
end
module ClassMethods
def cover_image
attr_accessible :cover_image
mount_uploader :cover_image, "CoverImageUploader"
end
end
ActiveRecord::Base.send(:include, MyConcern)
/app/models/my_model.rb
class MyModel < ActiveRecord::Base
cover_image
end
一切正常,直到我在调用该方法的类中更改某些内容(我的意思是任何内容),然后我给了我:
undefined method `cover_image_url' for #<MyModel:0x007fa0b043dbb0>
我相信与它如何加载这些方法有关。
Ps:我在我的开发环境中使用 Thin,每次都给我错误,然后我重新启动服务器,它就会恢复工作。