accepts_nested_attributes_for takes :reject_if => :method_name (or Proc.new{|obj| obj.some_value == i})

Garrett Lancaster

------------------------------------------------------------------------

        John W. <mailto:[email protected]>
April 4, 2011 11:57 AM



Validation failure would make all 20 records and the parent object save
fail in totality. I'm trying to have everything save minus the nested
objects with a certain field value of "i". All other nested objects
with other values save fine.

------------------------------------------------------------------------

        Colin Law <mailto:[email protected]>
April 3, 2011 2:33 PM



You could use a validation. That would be the normal method. Then
you can just call save and only the valid ones will actually be saved.

Colin

------------------------------------------------------------------------

        John W. <mailto:[email protected]>
April 3, 2011 1:36 PM


I have a scenario where I have to prevent objects from saving to the
database if they have a certain value and I want to come up with the
optimal way to achieve that.

In my scenario, upon form submit, I will send 20 rows to the update
action in the controller. However, I want to discard the 95% of them
that have a particular attribute value to save database rows.

I'm not sure I want to traverse the hashes:
params[:parentobject][:childobject][:grandchildobject][10][attributes][....
within the update action and loop through the objects and delete them
if they have a particular value.

doing a before_save method within the model being destroyed:
self.destroy if self.status = "something"
doesn't seem to be a good option.

Any other ideas?


--
You received this message because you are subscribed to the Google Groups "Ruby on 
Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

<<inline: compose-unknown-contact.jpg>>

Reply via email to