2011-03-27 55 views
1

我正在使用Mongoid在表上執行批量插入,其中batch是一個哈希數組:批量插入是否可以在Mongodb中進行驗證?

@state = State.new 
@state.collection.insert batch 

我是否通過這種方式繞過Activerecord?當我嘗試驗證記錄時沒有任何反應。

validates_format_of :population, :with => /\d+/ 

我也在嘗試執行回調來格式化數據。

before_validation :generate_population 

沒有任何反應。

回答

2

我的猜測是肯定的。在Grails驅動程序中,當您使用集合時會發生同樣的事情。當你做.collection時,它繞過正常的GORM。看起來像Rails中會發生同樣的事情。

解決方法是迭代批處理,並調用rails中存在的任何驗證函數。在Grails中你會這樣做:new state(it).valid();在Ruby中它可能就像batch.each {| it | State.new(it).valid}

問題是你應該怎麼做,如果一個是無效的?

+0

有沒有一種解決方法可以批量插入進行驗證工作? – 2011-03-27 15:50:45

+0

上面添加了註釋 – 2011-03-27 16:09:17