我試圖在我的mongomapper模型上使用我分叉的https://github.com/Bramanga/mongo_mapper_acts_as_versioned gem來設置版本控制。但是,每當我嘗試保存我的查找模型時,如果我嘗試使用時間類型(我必須使用它,因爲MongoDB只支持utc時間而不是日期)保存它,它將失敗。保存時間類型時mongo_mapper_acts_as_versioned失敗
型號:
class Finding
require 'carrierwave/orm/mongomapper'
include MongoMapper::Document
ensure_index 'finding.document'
plugin MongoMapper::Acts::Versioned
attr_accessible :found_date, :target_date, :abated_date
key :found_date, Time
key :target_date, Time
key :abated_date, Time
belongs_to :client
many :uploads, :dependent => :destroy
many :documents, :dependent => :destroy
timestamps!
def found_date=(date)
if date.present?
self[:found_date] = Chronic.parse(date).utc.beginning_of_day
else
self[:found_date] = nil
end
end
def target_date=(date)
if date.present?
self[:target_date] = Chronic.parse(date).utc.beginning_of_day
else
self[:target_date] = nil
end
end
def abated_date=(date)
if date.present?
self[:abated_date] = Chronic.parse(date).utc.beginning_of_day
else
self[:abated_date] = nil
end
end
end
端子輸出:
加載開發環境(滑軌3.0.10)
1撬(主)>找到= Client.first.findings.build
=> < #Finding _id:BSON ::的ObjectId( '4fc67c8f4e484f267c000002'),CLIENT_ID:BSON ::的ObjectId( '4f7119884e484f25bd005ee8'),custom_fields:{},legacy_attachments:[],標記:[]>
[2]撬(主)> finding.save
=>真
[3]撬(主)> finding.found_date = 「2012年12月24日」
=>「12/24/2012「
[4]撬(主)> finding.save
BSON :: InvalidDocument:當前不支持的ActiveSupport :: TimeWithZone;改爲使用UTC時間實例。 從/home/bramanga/.rvm/gems/[email protected]/gems/bson-1.6.2/lib/bson/bson_c.rb:24:in'連載」
我我不知道如何解決這個問題。也許我只是做錯了。有任何想法嗎?
你行代碼爲我工作,如果我註釋掉「插件」和「多」行,所以我真的避風港沒有測試過MongoMapper :: Acts :: Versioned是否與你的問題有關。你可以發佈你的Gemfile嗎?猜測你正在使用的寶石和插件是困難和耗時的。 –