🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: RoR vs PHP

#833
From: Jaroslaw Zabiello
Date: Wed, 02 Jan 2008 22:44
52 lines
3262 bytes
On Wed, 02 Jan 2008 20:01:35 -0000, Maciej Piechotka  
<uzytkownik2@gmail.com> wrote:

> On Wed, 02 Jan 2008 13:08:09 +0000, Jaroslaw Zabiello wrote:
>
>> On Wed, 02 Jan 2008 11:24:23 -0000, Maciej Piechotka
>> <uzytkownik2@gmail.com> wrote:
>>
>>> Jak rozumiem find rozróżniający czy to Parent czy dziecko to tylko
>>> kwestia kilku linijek?
>>
>> Używasz trochę za duże skróty myślowe. Nie jestem pewien co masz na
>> myśli z tym rozróżnianiem.
>
> parents:
> +----+--------------+
> | id | parent_value |
> +----+--------------+
> | 1  | To rodzic    |
> | 2  | To dziecko   |
> +----+--------------+
> children:
> +-----------+--------------+
> | parent_id | child_value  |
> +-----------+--------------+
> | 2         | To dziecko   |
> +-----------+--------------+
>
> Parent.find(2) #=> {:id => 2, :parent_value => 'To dziecko', :child_value
> => 'To dziecko'}

To jest trywialne tak samo w AR jak i Sequelu. Do klasu Parent dodajesz  
metodę child_value która wyciąga odpowiednie pole. W Ruby nie ma  
publicznych atrybutów klasy. Wszystkie zawsze są prywatne i jedynym  
dostępem do nich są metody (akcesory). A że nie muszą posiadać nawiasów,  
wygląda to tak jak w innych językach odczyt atrybutu klasy.

Dla Sequela byłoby to:

class Parent < Sequel::Model(:parents)
   #...
   def child_value
     Child.select(:parent_id => pk).first.child_value
   end

Odpowiednikiem Parent.find(2) będzie tu po prostu Parent[2]. Jak nie będzi  
rekordu, Sequel zwróci nil (AR zwraca dla takiej konstrukcji wyjątek).

-- 
Jarosław Zabiełło
http://blog.zabiello.com
irc://irc.eu.freenode.net/rubyonrails.pl
Technical Details
Message-ID: <op.t4bqsvufr2rg33@jzmbp.local>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <fl6ahk$m1q$1@inews.gazeta.pl> <op.t351icnsr2rg33@jzmbp.local> <fl93bh$d8p$1@inews.gazeta.pl> <r4il45-1ar.ln1@router.piechotka.com.pl> <op.t358bkfwr2rg33@jzmbp.local> <fl9aau$9b9$5@inews.gazeta.pl> <20071231084648.6d47feda.gryf_esm-no@spam-o2.pl> <op.t37dq3ydr2rg33@jzmbp.local> <0enn45-u25.ln1@router.piechotka.com.pl> <op.t37qnpdrr2rg33@jzmbp.local> <3pbo45-ha7.ln1@router.piechotka.com.pl> <op.t3777x1jr2rg33@jzmbp.local> <jtip45-n8c.ln1@router.piechotka.com.pl> <op.t388lvhur2rg33@jzmbp.local> <h96q45-37f.ln1@router.piechotka.com.pl> <op.t39jhmarr2rg33@jzmbp.local> <grhq45-5dg.ln1@router.piechotka.com.pl> <op.t39xi4kdr2rg33@jzmbp.local> <op.t4aafpggr2rg33@jzmbp.local> <rrur45-29m.ln1@router.piechotka.com.pl> <op.t4ardgyxr2rg33@jzmbp.westglobal.com> <7s8s45-lcn.ln1@router.piechotka.com.pl> <op.t4az3vqzr2rg33@jzmbp.westglobal.com> <v57t45-tlr.ln1@router.piechotka.com.pl>

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" <abuse@tpnet.pl>
Newsgroups: pl.comp.lang.ruby
Subject: Re: RoR vs PHP
Date: Wed, 02 Jan 2008 22:44:24 -0000
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 52
Message-ID: <op.t4bqsvufr2rg33@jzmbp.local>
References: <fl6ahk$m1q$1@inews.gazeta.pl> <op.t351icnsr2rg33@jzmbp.local> <fl93bh$d8p$1@inews.gazeta.pl> <r4il45-1ar.ln1@router.piechotka.com.pl> <op.t358bkfwr2rg33@jzmbp.local> <fl9aau$9b9$5@inews.gazeta.pl> <20071231084648.6d47feda.gryf_esm-no@spam-o2.pl> <op.t37dq3ydr2rg33@jzmbp.local> <0enn45-u25.ln1@router.piechotka.com.pl> <op.t37qnpdrr2rg33@jzmbp.local> <3pbo45-ha7.ln1@router.piechotka.com.pl> <op.t3777x1jr2rg33@jzmbp.local> <jtip45-n8c.ln1@router.piechotka.com.pl> <op.t388lvhur2rg33@jzmbp.local> <h96q45-37f.ln1@router.piechotka.com.pl> <op.t39jhmarr2rg33@jzmbp.local> <grhq45-5dg.ln1@router.piechotka.com.pl> <op.t39xi4kdr2rg33@jzmbp.local> <op.t4aafpggr2rg33@jzmbp.local> <rrur45-29m.ln1@router.piechotka.com.pl> <op.t4ardgyxr2rg33@jzmbp.westglobal.com> <7s8s45-lcn.ln1@router.piechotka.com.pl> <op.t4az3vqzr2rg33@jzmbp.westglobal.com> <v57t45-tlr.ln1@router.piechotka.com.pl>
NNTP-Posting-Host: 89.124.240.242
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1199313886 28366 89.124.240.242 (2 Jan 2008 22:44:46 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Wed, 2 Jan 2008 22:44:46 +0000 (UTC)
X-User: hipertracker
User-Agent: Opera Mail/9.25 (MacIntel)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit