Thank you so much for all your help! On Mar 5, 2:44 pm, Michael Pavling <pavl...@gmail.com> wrote: > On 5 March 2010 17:02, xxdesmus <xxdes...@gmail.com> wrote: > > > So I have a bunch of form fields that I need to add up their > > values, and make sure their sum does not except the value entered in a > > new form field. If the sum does exceed the form field value then I > > want to alert the user and prevent it from saving. Basically I want to > > validate that :atWorkHours.value > ( :hoursMeetings.value > > + :hoursTraining.value + :hoursProjTrav.value ) > > > I tried to do something similar to this in my model...but I assume I > > just had the syntax completely wrong. > > Assuming all of the "hours" attributes all return numbers (something, > somewhere is ensuring that, I hope ;-) -- you can add some > validations to your model. Again, there's a couple of ways of doing > this - I normally separate the method that adds the error to base from > the code that checks the condition (so I can check the condition > myself if I want), but you could easily merge them together if you > prefer: > > validate :validate_work_hours_not_exceeded > > def work_hours_exceeded? > # this is a little different to your equation, as yours would > raise an error if both sides were exactly the same, and I'd guess > that's not the right result - but if not, adjust it to suit > [hours_at_meetings, hours_in_training, hours_travelling].sum > > hours_at_work > end > > private > def validate_work_hours_not_exceeded > errors.add_to_base("Do not exceed working hours") if work_hours_exceeded? > end > > I took the liberty of tweaking the variable names (although you were > showing them as symbols...) to make them a little more in line with > conventions (and, I think, more easily readable - YMMV :-)
-- 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 rubyonrails-t...@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.