tengo 2 modelos con los datos anidada:update_attributes vuelve siempre es cierto, incluso si nested_attributes no son válidas
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
Al realizar registros anidados, la validación correcta se lleva a cabo, por ejemplo, si los datos en el modelo anidado no corrigen , de modo de comando:
@tender = Tender.new(params[:tender])
@tender.save
retornos falsos
pero si los datos de actualización:
@tender = Tender.find(params[:id])
@tender.update_attributes(params[:tender])
siempre eturns cierto
Incluso si los datos anidados no hacer válida. Aquí las actualizaciones y los datos válidos de los padres y si los datos válidos de los padres no son válidos, devuelve falso, si uno de los registros anidados no es válido, se ignoran cuando se guardan y update_attributes devuelve verdadero. ¿Existe la oportunidad de verificar los datos de validez en el momento de actualizar toda la cadena de datos anidados? Gracias por tu respuesta.
que estoy usando: de Ruby 1.8.7 RoR 3.0.9 Mongoid 2.0.1
Lo mismo sucede en MySQL. Rails 3.0.11 –
¿Has probado la devolución de llamadas en cascada? – Baruch