🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Czy ActiveRecord jest logiczny?

#246
From: Jaroslaw Zabiello
Date: Fri, 20 Oct 2006 10:55
25 lines
1995 bytes
W ActiveRecord dosyc mętnie są zaimplementowane relacje. Np. na co wskazuje
belongs_to(:abc)? Na klasę prawda? Tylko dlaczego z małej litery, skoro to
klasa? A w wypadku klas MojaDziwnaKlasa już trzeba napisać belongs_to
:moja_dziwna_klasa. Ja tu nie widzę nic oczywistego.

Ale jest jeszcze gorzej. Bo has_many najwyraźniej wskazuje już nie na klasę
ale na tabelę. Więc pisze się belongs_to :users podczas gdy klasa jest
User. 

Można w tym się nieźle pogubić w wypadku nietypowych tabel z nietypowymi
polami (w sensie nazw i konwencji RoR).

Często mamy do czynienia z głupimi nazwami pól/tabel i wydaje mi się, że
najlepiej jest stworzyć model który za pomocą kompozycji ponazywa wszystkie
pola inaczej. Tylko czy to się da? W Django wszystkie pola muszą być
definiowane w modelu i używanie innej, czytelniejszej nazwy pola w miejsce
pola jakie siedzi w bazie, jest trywialne. AR umożliwia zmianę nazwy tabeli
i klucza głównego. Ale co z resztą pól? Da się to ustawić bezpośrednio w
modelu? Np. mam pole Name_VC i nie mogę używać find_by_Name_VC z powodu
znaczka _. Chciałbym w modelu aby to było pole "name" i aby miał dostępne
findery typu find_by_xxx.

-- 
Jarosław Zabiełło
http://blog.zabiello.com
Technical Details
Message-ID: <cxh2344pr5ob$.1uuphognwvje6$.dlg@40tude.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Jaroslaw Zabiello <hipertracker@gmail.com>
Newsgroups: pl.comp.lang.ruby
Subject: Czy ActiveRecord jest logiczny?
Date: Fri, 20 Oct 2006 11:55:41 +0100
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 25
Message-ID: <cxh2344pr5ob$.1uuphognwvje6$.dlg@40tude.net>
NNTP-Posting-Host: 82.195.148.233
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1161341801 26586 82.195.148.233 (20 Oct 2006 10:56:41 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Fri, 20 Oct 2006 10:56:41 +0000 (UTC)
X-User: newsgate2006
User-Agent: 40tude_Dialog/2.0.15.1pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit