DRY のままにするために、次のように Mongoid ドキュメントを含むクラス ModelBase があります。
class ModelBase
include Mongoid::Document
alias_attribute :guid, :id
def as_json(options = {})
azove_hash = options.merge(:methods => :guid)
super azove_hash
end
end
次に、すべてのモデルが ModelBase から継承され、正常に動作しているようです。ただし、CarrierWave を使用しているモデルが 1 つあります。ModelBase から継承する場合、mount_uploader の呼び出しは失敗します。サブクラス化せずにモデルを内部に含めると、正常に動作します。別のクラスから継承したクラスで Carrierwave を使用することはできませんか?
これは、失敗しているクラスのバージョンです。提案/アイデアをいただければ幸いです
require 'carrierwave/orm/mongoid'
class SomeOtherModel < ModelBase
field :abstract
validates :abstract, :presence => true
field :category
validates :category, :presence => true, :inclusion => {:in => %w{audio graphics text video}}
field :content_uri
validates :content_uri, :presence => true
has_and_belongs_to_many :topics
has_and_belongs_to_many :events
has_and_belongs_to_many :authors, :class_name => "User"
mount_uploader :content, ContentUploader
attr_accessible :abstract, :category, :content, :content_uri, :authors, :topics, :events
end