5
我有2種型號,嵌套數據:update_attributes方法返回總是正確的,即使nested_attributes無效
class Goodtender
include Mongoid::Document
include Mongoid::Timestamps
field :name
field :count
references_many(:offerprices, :autosave => true)
accepts_nested_attributes_for :offerprices, :allow_destroy => true, :reject_if => :all_blank
validates_presence_of :name, :message => "Invalid"
validates_numericality_of :count, :message => 'Invalid'
validates_associated :offerprices, :message => 'Invalid'
end
class Offerprice
include Mongoid::Document
include Mongoid::Timestamps
field :summ
field :date_delivery, :type => DateTime
field :note
referenced_in :goodtender, :class_name => 'Goodtender'
validates_presence_of :date_delivery, :message => "Invalid"
validates_numericality_of :summ, :message => 'Invalid'
end
當進行嵌套記錄,正確的驗證發生,例如,如果在嵌套的模型數據不正確,所以命令:
@tender = Tender.new(params[:tender])
@tender.save
返回false
但如果更新數據:
@tender = Tender.find(params[:id])
@tender.update_attributes(params[:tender])
總是反映真實
即使嵌套數據無效。這裏父母的數據更新和valid,如果父母的數據無效返回false,如果其中一個嵌套記錄無效, 它們在保存時被忽略,並且update_attributes返回true。是否有機會在更新所有嵌套數據鏈時檢查有效性數據?感謝您的回覆。
我使用: 的Ruby 1.8.7 回報率3.0.9 Mongoid 2.0.1
相同的事情發生在MySQL上。 Rails 3.0.11 –
您是否嘗試了級聯回調? – Baruch