1
爲了保持乾燥,我有一個類模型庫,包括Mongoid文件如下:Mongoid和carrierwave
class ModelBase
include Mongoid::Document
alias_attribute :guid, :id
def as_json(options = {})
azove_hash = options.merge(:methods => :guid)
super azove_hash
end
end
然後我所有的車型從模型庫繼承,他們似乎是工作的罰款。但是,我有一個使用CarrierWave的模型。當它從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
傑西,謝謝你的回覆。其實,我並沒有試圖分享領域。我試圖重用我需要的as_json方法,因爲我在前端使用Sproutcore,這需要使用json格式進行數據通信。所以,我想在一個類中移動該方法,並儘可能在所有模型中重用該方法。但是,當我使用這個特定的類時,它會拋出一個錯誤:關於mount_uploader – joque 2011-06-03 13:12:48
的方法錯誤沒有使用as_json方法的方法。不要使用繼承 – 2011-06-03 13:38:02