raji wrote:
[...]
> I need a way to ensure that a grouping is unique.  That is, there
> should not be two grouping_ids containing the exact same elements.
> 
> The closest analogy I can think of is a composite primary key.
> Except, this is across multiple rows (instead of columns) and uses
> polymorphic association types and ids.
> 
> Can this be easily done with Rails and ActiveRecord?

Well, you could write a custom validator, something like (untested):
class Grouping < AR::B
  validate :must_have_unique_elements

  def must_have_unique_elements
    taken = (elements.first.groupings.find :element_ids => 
element_ids).empty?
    # There's gotta be a more efficient way to write that query.

    errors.add_to_base("That combination of elements already exists!") 
if taken
  end
end

I don't think there's anything off the shelf to make this easier, but I 
might be wrong...

> 
> Thanks,
> Raj

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
mar...@marnen.org
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
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@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
-~----------~----~----~----~------~----~------~--~---

Reply via email to