Gå til innhold

Hente to kolonner frå databasen.


Anbefalte innlegg

Eg har ein tabell som ser slik ut:

 

id, first_name, last_name, email

 

Eg har tenkt å hente alle radene av bare first_name og last_name

Men korleis blir syntaxen for dette? person = Person.find.....

 

EDIT: person = Person.find_by_sql("SELECT first_name, last_name FROM personer") Ser ut til å fungere, men er dette ein god måte?

 

Og det som kjem til person blir eit hash ikkje sant?

Sånn at det vil sjå for eksempel slik ut?

 

person = {"truls" => "olsen", "per" => "gunnar"}

Lenke til kommentar
Videoannonse
Annonse

>> Location.find(:first, :select => 'name')
=> #<Location:0xb14d6b2c @attributes={"name"=>"Cambridge"}>

Dette returnerer et fullt ActiveRecord object, hvor bare disse attributene er satt. Dersom du ønsker å lagre objektet etter å ha gjort endringer må du ha med id:

 

>> Location.find(:first, :select => 'id, name')
=> #<Location:0xb14d2ea0 @attributes={"name"=>"Cambridge", "id"=>"2"}>

Lenke til kommentar

Ja, dvs, den vil returner alle radene (som AR objekter) inneholdene disse to kolonnene. :)

 

Forøvrig er det veldig lett å finne ut akkurat hva som skjer dersom du blir venn med konsollen:

 

sqaweb:/srv/www/sqaweb # ruby script/console
Loading development environment.
>> require 'pp'
=> ["PP"]
>> PP.pp Location.find(:all, :select => 'name')
[#<Location:0xb167a1cc @attributes={"name"=>"Cambridge"}>,
#<Location:0xb167a1b8 @attributes={"name"=>"Maidenhead"}>,
#<Location:0xb167a190 @attributes={"name"=>"Blackburn"}>,
#<Location:0xb167a168 @attributes={"name"=>"Trace"}>,
#<Location:0xb167a140 @attributes={"name"=>"Bangalore"}>]
=> #<IO:0xb7ca1000>
>>

Her kan du se vi fikk en array som inneholder 5 AR objekter, hvor attributten name er satt.

 

(PP (Pretty Print) er bare en modul som prøver å skrive ut objekter på en mest mulig menneskevennlig måte.)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...