Hello Robert,

You misunderstood my problem I guess.

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?

Thanks a million all

Vik



On Jan 7, 5:45 pm, Robert Walker <[email protected]>
wrote:
> tron wrote:
> > class Word
> > end
>
> > class PhraseComponent
> >    belongs_to :word
> >    belongs_to :dictionary_entry
> >    acts_as_list :scope => :dictionary_entry
> > end
>
> > class DictionaryEntry
> >   has_many :phrase_components
> >   has_many :words, :through => :phrase_components
> > end
>
> Well from the database side of thing that's easily solved by adding a
> unique index across the two foreign keys in the join table. That would
> definitely prevent duplicates in the join table.
>
> CREATE UNIQUE INDEX idx_word_dictionary_entry ON phrase_components
> (word_id, dictionary_entry_id);
>
> From the Rails side you might be able to use something like the
> following example:
>
> class TeacherSchedule < ActiveRecord::Base
>   validates_uniqueness_of :teacher_id, :scope => [:semester_id,
> :class_id]
> end
>
> Maybe (untested):
>
> class PhraseComponent < ActiveRecord::Base
>   validates_uniqueness_of :word_id, :scope => :dictionary_entry
>   validates_uniqueness_of :dictionary_entry_id, :scope => :word_id
> end
>
> Note: This may be an expensive method for validating uniqueness!
>
> In any of the cases mentioned you'll still have issues related to
> "Optimistic Concurrency 
> Control:"http://en.wikipedia.org/wiki/Optimistic_concurrency_control
>
> This section of the Rails documentation has a good explanation of these
> issues and some options on how to solve 
> them:http://www.railsbrain.com/api/rails-2.2.2/doc/index.html?a=M001824&na...
>
> --
> Posted viahttp://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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to