Article View: pl.comp.lang.ruby
Article #918Re: walidacja modelu w przypadku has_and_belongs_to_many
From: Piotr 'piter' Hlawski
Date: Tue, 05 Feb 2008 08:37
Date: Tue, 05 Feb 2008 08:37
42 lines
3373 bytes
3373 bytes
Jaroslaw Zabiello wrote: > On Wed, 30 Jan 2008 07:32:49 -0000, Paweł Kondzior <kondzior.p@gmail.com> > wrote: > >>> Uważam, że do przesada. Nie zawsze prawdziwy model "po drodze" jest >>> potrzebny. >> >> Ja sie pod tym podpisuje, The Rails Way is not the only one Way, czasami >> chodzi tylko o skojarzenie dwoch modeli tabela laczacal i niczym wiecej. > > Niestety, ale nie macie racji. To nie tylko osobiste zdanie autora książki > The Rails Way. To jest oficjalne stanowisko wyrażone w dokumentacji do RoR > (http://api.rubyonrails.com/classes/ActiveRecord/Associations/ClassMethods.html). > Makro habtm jest oznaczone oficjalnie jako *DEPRECIATED* i dokumentacja > RoR SILNIE ZALECA używanie prawdziwych tabel łączących a nie tego > sztucznego tworu bez modelu, klucza głównego i bez możliwości > wykorzystania dodatkowym kolumn w tabeli. Cytat: > > "Deprecated: Any additional fields added to the join table will be placed > as attributes when pulling records out through has_and_belongs_to_many > associations. Records returned from join tables with additional attributes > will be marked as ReadOnly (because we can?t save changes to the > additional attributes). It?s strongly recommended that you upgrade any > associations with attributes to a real join model (see introduction)." > Moim zdaniem źle to interpretujesz. Deprecation tyczy się tylko przypadków kiedy chciałbyś wyposażyć tabelę łączącą w dodatkowe atrybuty. Wtedy oczywiście tworzysz nowy model z tradycyjnym has_many/belongs_to/:through W przypadku gdy tabela łącząca jest tylko i wyłącznie tabelą łączącą, a więc posiada model1_id i model2_id to po co mi ona jako fizyczny model? Taka tabela łącząca jest normalnym rozwiązaniem w projektach bazodanowych w przypadku relacji wiele-do-wielu w procesie normalizacji i nie ma prawa być nagle deprecated, bo tak sobie zażyczyli projektanci RoR. Dajmy spokój takim sądom, nie uwierzę w to. -- [ Piotr 'piter' Hlawski ( <phlawski$gmail,com> ) ( GG: 4534287 ) ]
Technical Details
Message-ID:
<1545144.TYoIXpiRvH@zatoichi.homeunix.org>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<d3eadb5f-68bc-448f-a7c4-4ef395c49552@i29g2000prf.googlegroups.com> <op.t5o0ezulr2rg33@macbook-pro-zbiru.local> <1978646.8dMPzUgjSc@zatoichi.homeunix.org> <fnp9ik$ojh$1@nemesis.news.tpi.pl> <op.t5090oxor2rg33@jzmbp.local>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: Piotr 'piter' Hlawski <phlawski@cut_this_crap.gmail.com>
Newsgroups: pl.comp.lang.ruby
Subject: Re: walidacja modelu w przypadku has_and_belongs_to_many
Date: Tue, 05 Feb 2008 09:37:41 +0100
Organization: UAC
Lines: 42
Message-ID: <1545144.TYoIXpiRvH@zatoichi.homeunix.org>
References: <d3eadb5f-68bc-448f-a7c4-4ef395c49552@i29g2000prf.googlegroups.com> <op.t5o0ezulr2rg33@macbook-pro-zbiru.local> <1978646.8dMPzUgjSc@zatoichi.homeunix.org> <fnp9ik$ojh$1@nemesis.news.tpi.pl> <op.t5090oxor2rg33@jzmbp.local>
NNTP-Posting-Host: gw202.internetdsl.tpnet.pl
Mime-Version: 1.0
X-Trace: atlantis.news.tpi.pl 1202200733 22181 80.53.74.202 (5 Feb 2008 08:38:53 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Tue, 5 Feb 2008 08:38:53 +0000 (UTC)
User-Agent: KNode/0.10.5
X-OS: FreeBSD 7.0RC1
X-Face: ||2,<Tr.m4w*(ic%$y<v09}$U]=ONDHM?27W/VpJs3/x8leDR+?!.>o4@Y<|,=>Hfxob&l\ Y6rT\(]QOnpqBRnT5|~r,pSb.@_$`y@"FCCv*/VriZkei1!dIe]n8rdG&ZY'asF8?YqV>F;z;RRGuN bZ";p#8w^|rc"B|"|%{pM:}YeZH6CDXp)c-Nx5z^}")t+}vq*T8P|:AWz.ex6ceYEQ3TOKh!{Id?_h 2be
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit