On 6 Nov 2008, at 14:00, TomRossi7 wrote:
> > Fred, > > Thanks for the reply! The :uniq is good work around, but multiple > entries are still added to the database. The unique index will > actually cause ActiveRecord to throw an error since it is trying to > create a duplicate record. > > This seems like a bug to me that it creates duplicate records? I can > code around it, but wanted to make sure I wasn't missing something. > I don't think it's necessarily a bug. Depend on how you are using it duplicate records in an association might be allowed, or might not, it's not the frameworks job to say 'collections shall have no duplicates'. I'm slightly surprised that uniq only affects reading from the collection, I suppose the thing is that normally categories << post does not require loading the collection whereas if it checked if categories.include?(post) that would force the collection to be loaded (at least it would have previously - I seem to recall the include? no longer causes the collection to be loaded) Fred > Thanks, > Tom > > On Nov 6, 5:21 am, Frederick Cheung <[EMAIL PROTECTED]> > wrote: >> On 5 Nov 2008, at 23:01, TomRossi7 wrote: >> >> >> >>> Lets say you have a relationship like post has and belongs to many >>> categories. If I were to do something like the following: >> >>> category << post >>> category << post >>> category << post >> >>> I've basically assigned the post to the category three times. I'm >>> noticing that in my join table there are now three join records? >>> Shouldn't it only have one? >> >> If that's what you require, set the :uniq option on the association >> (and create a unique index on that table to enforce that if you are >> so >> enclined) >> >> Fred >> >> >> >>> This causes problems when you do category.posts and you get the same >>> post three times. I'm just wondering if I am missing something >>> here? >> >>> Thanks, >>> Tom > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---

