I've added more details to which relationships get set up for anonymous m2m relationships, as well as an example of how you would link or unlink 2 resources.
http://datamapper.org/docs/associations cheers snusnu On Fri, Aug 6, 2010 at 06:06, deco <[email protected]> wrote: > Honestly I have read this page more than once. Perhaps I've looked at > it too many times and I'm just not seeing it. so in their example I > should be able to make a new join association with the syntax > @article = Article.get(...) > @article.article_category({:article_id => x, :category_id => y }) > > or..... > > On Aug 5, 12:34 pm, Martin Gamsjaeger <[email protected]> wrote: >> Hey, >> >> Have a look at the section about anonymous join models >> at:http://datamapper.org/docs/associations >> >> While the whole page is definitely worth reading, you may want to >> specifically read through >> >> Has, and belongs to, many (Or Many-To-Many) >> >> The naming conventions in use, as well as the way you typically use >> these resources are described over there. >> >> cheers >> snusnu >> >> >> >> On Thu, Aug 5, 2010 at 17:45, Richard Conroy <[email protected]> >> wrote: >> > On Thu, Aug 5, 2010 at 4:16 PM, deco <[email protected]> wrote: >> >> >> If I made a third model manually and called it cars_people with >> >> person_id and car_id as primary keys I could add rows to it. >> >> (Person.cars_people.new(params) ... I realize his may not be the >> >> correct way, please advise) But seeing as it was done "through >> >> Resource" I don't know how to create them. >> >> > I think you are on the right track. DataMapper supports 2 kinds of join >> > tables, >> > anonymous and custom. For most people anonymous join tables are fine; DM >> > creates the table and references in the background. >> >> >> My models: >> >> >> Cars >> >> property :id, Serial >> >> property :name, String >> >> property :model, String >> >> has n, :people, :through => Resource >> >> >> People >> >> property :id, Serial >> >> property :name, String >> >> property :model, String >> >> has n, :people, :through => Resource >> >> > The key thing here is: >> > has n, :model, :through => Resource >> > This signifies that you are making an anonymous join table. To make this >> > a custom, non anonymous join table, you would need to code it up as a >> > regular >> > model like you are suggesting: >> > CarsPeople >> > belongs_to :people >> > belongs_to :cars >> > property :custom_join_table_property, Stromg >> > Then in your Cars and People models you signify the Custom join table like >> > so: >> > has n, :people, :through => CarsPeople >> > Apologies if this isn't exactly correct, and I have played it fast and >> > loose >> > with DM >> > pluralization naming conventions, but I think you get the picture. The docs >> > aren't >> > exactly swimming with information on how to do this, but the principle is >> > pretty >> > straightforward and consistent. >> > -- >> >http://richardconroy.blogspot.com >> >> > -- >> > You received this message because you are subscribed to the Google Groups >> > "DataMapper" 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/datamapper?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "DataMapper" 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/datamapper?hl=en. > > -- You received this message because you are subscribed to the Google Groups "DataMapper" 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/datamapper?hl=en.
