This may not be rails unique but what is the best practice to validate
the uniqueness of has_many associations.
In particular the models are
acts_as_list :scope => :dictionary_entry
has_many :words, :through => :phrase_components
Dictionary entries (words and phrases) are composed of words (which
and I want to check the same phrase occurs only once in the
Is there a better or more efficient way to do this than create and
update a footprint
of the word associations on dictionary entries?
This means I would have a string field in the dictionary_entries table
which is a concatenation of
the associated words and would check the uniquness of that.
If we generalize the problem, we need to assure uniqueness of lists of
arbitrary objects (where a list is via a join table), in that case the
only representation that I can create on the list is the concatenation
of ids of list items and check the uniqueness of this?
I begin to think there must be a more canonical way to handle this.
Any help appreciated
I found someone asking the same question but no reply followed.
Think of bora as a unique word, with id 1.
there is a dictionary entry for bora bora with id 2
then the phrase components representing this association are not
unique in word_id X dictionary_id (both are 1,2)
only word_id and dictionary_id AND list index (position) meaning
there can only be one word on the same position of a list.
The real problem is that I want to make sure
bora bora is entered only once in the dictionary.
For those who like more examples, think of travel itineraries
(which are a list of cities, say New York - London - Paris - Budapest)
Cities are a table, Itineraries are another and there is a join
model (Visits) which acts as a list.
How do I make sure an itinerary is created only once?