You can write method to validate nested result attributes.

Def valid_nested_results?(results_attributes)

results_attributes.each do|res_attr|
return false if(res_attr['attr1'].blank? and res_attr['attr2'].blank? ....)
end

return true

end

And use this method in reject_if instead of 
attributes['results_attributes'].blank?

Or you can also define the appropriate :reject_if for nested attribute 
definition for results in treatment model. 

Does it help?

-----Original Message-----
From: Mlle <[email protected]>
Sent: Friday, 7 May 2010 7:35 PM
To: Ruby on Rails: Talk <[email protected]>
Subject: [Rails] Reject a nested object if all parameters of its own nested 
object are blank

Hello,

I have a model called Sample that has many Treatments.  A Treatment
can have many Results.

I want to reject the creation of a Treatment if all its fields are
blank and if all the fields of each of its nested Results are blank.

I have this in the Sample model:

accepts_nested_attributes_for :treatments, :allow_destroy =>
true, :reject_if => proc { |attributes|
attributes['treatmenttype'].blank? && attributes['author'].blank? &&
attributes['results_attributes'].blank? }


This part:
attributes['results_attributes'].blank?

only makes it reject the Treatment if there are no Results, but how
can I write the conditions so that it will reject the creation of a
Treatment if all the attirubtes of each Result are blank?  Right now
it creates the Treatment if the Result exists, regardless of whether
all its fields are blank.

-- 
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.


-- 
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.

Reply via email to