I have a Logo model that has fields of name:string, default:boolean. I want the true value to be unique, so that only one item in the database can be set to true at once. How do
Okay there is a few more things you will need.
Don't use the field name default, its usually reserved for the database. Saving a record with a default as false will set all records to false, this isnt what you want. check to see if we are setting this record to true and the falseify.
before_save :falsify_all_others
def falsify_all_others
if is_default
self.class.where('id != ?', self.id).where('is_default').update_all(:is_default => false)
end
end