validkeys | 23 Jul 04:52

Validation method vs. After Save & Rollback


Hey Guys,

Again, I am just learning Rails, so I am asking advice here.

I have a model called Company which has many Owners. The Owners model
indicates the name of the owner and their share (as a percentage) of
the company. The total shares for any one company can not be more than
100%.

So if I have 10 owners each with 10% of the company and I update one
of the owners and set their share to 11%, I should be given a warning
message.

This is what I have done in my Owner model:

def more_than_100_given_away?
  # => find the total share
  company = Company.find(company_id)
  company_total_share = company.total_share  # => This is summing the
old value
  if changed?
    if changes["share"]  # => Changes to a model are stored in the
changes array on the instance, the array has 2 value ["from_value",
"to_value"]
      old_value = changes["share"][0].to_f  # => Convert To Float
      new_value = changes["share"][1].to_f
      new_total_share = company_total_share - old_value + new_value
      new_total_share > 100.01
    else
      false  #  validation succeeds
    end
  else
    false  #  validation succeeds
  end
end

It is working for me just fine, but I wanted to know if there was a
better (less NOOB looking way to do this)

Thanks!
--~--~---------~--~----~------------~-------~--~----~
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-talk@...
To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@...
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---


Gmane