🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.ruby
Article #918

Re: walidacja modelu w przypadku has_and_belongs_to_many

#918
From: Piotr 'piter' Hlawski
Date: Tue, 05 Feb 2008 08:37
42 lines
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-mail
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>

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