Article View: pl.comp.lang.ruby
Article #246Czy ActiveRecord jest logiczny?
From: Jaroslaw Zabiello
Date: Fri, 20 Oct 2006 10:55
Date: Fri, 20 Oct 2006 10:55
25 lines
1995 bytes
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-mailShow 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