class Gift < ActiveRecord::Base
has_many :contributions
accepts_nested_attributes_for :contributions, :reject_if => proc { |a| a['amount'].blank? }
Contribución tiene un: atributo de apodo. En el: formulario nuevo, está rellenado previamente con el nombre real del usuario. Un usuario puede decidir cambiarlo a "Uncle Bob" (o lo que sea). Lamentablemente, con: reject_if, si no se especifica ninguna cantidad en la contribución, el cambio de apodo se pierde cuando: nuevas recargas en casos donde @gift no es válido. Esto sucede porque los atributos contributivos anidados son rechazados. ¿Cómo preservamos el cambio de apodo y solo manejamos el rechazo cuando @gift se guarda realmente?accepts_nested_attributes_for &: reject_if. ¿Cómo prevenir el rechazo hasta que se guarde la asociación de padres?
Sí, tengo validates_presence_of: amount en Contribution. Cuando el formulario @gift se envía con: 1) campos Contribution en blanco, funciona. (El regalo descarta el nido vacío) 2) con: cantidad, funciona. (La validación se realiza). 3) con un: apodo pero no: cantidad, no funciona. Este es el caso predeterminado, porque queremos que el formulario sea rellenado previamente con el nombre completo del usuario en: apodo. Agregar el: reject_if => a ['amount']. Blank ?, elimina cualquier cambio que el usuario haga al apodo. Queremos que esos cambios se conserven. ¿Tener sentido? – Gavin
Si ese es el caso, ¿debería modificar la cláusula: reject_if en {| a | ['amount']. Blank? && a ['apodo'], en blanco?} – EmFi