Rails och databas

Tråden skapades och har fått 17 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Ulricehamn
  • 2006-03-22 09:12

Det verkar vara en hel del som förordar rails här, så jag måste höra mig för. Jag har sneglat lite på det tidghare och började igår igen spåna på en enkel "data stansar" applikation som förmodligen går mycket enklare att smälla upp i Rails än i JSP där jag vanligtvis hör hemma. (det handlar egentligen bara om att mata in data och ta ut enkla listor).

Slog mig dock, om jag inte minns fel så kräver Rails att databasen har en auto incrementerad "id" kolumn, eller minns jag helt fel? För databasen i det här fallet är vårt existerande affärssystem så jag har ingen större möjlighet att gå in och meka i den..

  • Medlem
  • Ulricehamn
  • 2006-03-22 09:40

Såklart det fungerar, tack för tipset. Mycket spännande att läsa

  • Medlem
  • Ulricehamn
  • 2006-03-23 20:33

Det där fungerar .. sådär för mig. Jag får inte mina has_many att fungera! Dvs, jag får inga fel men inte heller kommer det ut någon data? (vilket troligen beror på att jag begriper för dåligt i ämnet)

has_many & belongs_to är lite knepigt? I ett av fallen har databastabellen en id kolumn, men det är inte den som utgör foreign key. Trots att jag stansar in set_foreign_key "kundnamn" så klagar den på att den får en string när jag försöker skapa en kontaktperson på denna kund.
(verkar alltså som att den försöker mappa konatktperson till kundtabellens räknare?)

Finns det mer bra läsning i ämnet för en nybörjare?

Hur ser de relevanta fälten i dina tabeller ut? Hur ser modellerna ut?

  • Medlem
  • Ulricehamn
  • 2006-03-23 20:54

Nu har jag kastat upp en testdb för att få till det här.. det verkar inte som att mina ändringar tar.. felmeddelandet jag får nu om jag i en scaffold förösker lägga upp en kund är

"Customer expected got string"

Customer är en klass.. jag funderar på om den fått fnatt?

Min testdb har en tabell customers med namn och cusid (varchar) som är nyckel.
Tabell contacts har fältet customerid som refererar till customers.

Customer har således
set_primary_key "cusid"
has_many :contacts, :foreign_key=>"customerid"

och Contact i sin tur
belongs_to :customer, :foreign_key=> "cutomerid"

Har jag lyckats vända på det på något sätt? (i min iver att få till en lösning innan helgen)

Felstavningen av customerid på sista raden är bara här på 99mac eller?

Felmeddelandet låter som att det blir galet när du försöker koppla ihop två objekt. Om du har ett Customer-objekt i @customer och ett Contact-objekt i @contact kopplar du ihop dem så här:

@customer.contacts << @contact

På felmeddelandet låter det som att @contact är en sträng. Kan det stämma?

  • Medlem
  • Ulricehamn
  • 2006-03-23 21:14
Ursprungligen av capojava:

På felmeddelandet låter det som att @contact är en sträng. Kan det stämma?

Jo, fast tvärtom.

Jag får nog läsa på lite mer innan jag går vidare.. Rails som skall vara så lätt, det hade jag fixat i Zope eller JSP på nolltid :rolleyes: .... men jag säger inget om hur många kilometer tutorials jag läst om zope & jsp..

Är tillbaka efter mitt dumma hackande i alla fall.. men likväl så fungerar det inte
som jag trodde efter att ha läst http://wiki.rubyonrails.org/rails/pages/TutorialBasicRelational

så jag får läsa lite mer, stort tack för hjälpen, jag skall ta ett par djupa andetag...

Senast redigerat 2006-03-23 21:36
  • Medlem
  • Ulricehamn
  • 2006-03-23 21:08

Hej ... ja tyvärr.... jag erkänner.. jag sitter inte vid macen och jobbar med det här (för lite RAM och liten skärm)

Fast nu tror jag att jag vet en av orsakerna i vilket fall. får nu felet:
"Parameters: {"commit"=>"Create", "contact"=>{"name"=>"Pc-pelle", "phone"=>"010-100 10", "refid"=>"101", "customer"=>"100", "email"=>"pese@sopig.se"}}"

Vart ändrar jag det där, för det finns inget kolumn som heter "customer" i den tabellen, den heter "customerid"?

(Ääää - fann det .. man är blind)

Senast redigerat 2006-03-23 21:29

Ett tips... strunta i scaffolds. De är bara i vägen när man försöker göra något på riktigt.

Men problemet verkar mycket riktigt vara att du försöker spara en kontakt skapad med "customer" => "100". Byt ut namnet på det fältet till customerid istället. Om du har en array med alla Customer-objekt i @customers kan du göra en fin dropdown så här i din view:

<%= collection_select 'contact', 'customerid', @customers, 'cusid', 'name' %>

Förutsatt att fältet för Customer-namn heter just "name".

  • Medlem
  • Ulricehamn
  • 2006-03-23 21:44

Snyggt exempel, jag skall se om jag kan få till den drop-downen per kund på deras kontaktpersoner. Först skall jag bara få deras kontaktpersoner i en array. Lämplig uppgift innan midnatt!

Stort tack - (www.billiga_bocker_om_ruby.se nästa)

Det är busenkelt

@customer.contacts

Förresten kan jag rekommendera http://rails.se. Vi är ett par stycken som håller på med Rails i Sverige.

  • Medlem
  • Ulricehamn
  • 2006-03-24 07:52

Tack för länken, får se om jag får grepp på detta eller om jag får hålla mig till det jag kan. Gillar upplägget med frameworken, får grotta lite mer i ruby syntaxen dock.

Men hur var det med MySQL & Rails på panthern, funkade det smärtfritt? Man vill förstås helst jobba vid sin mac

Funkar utmärkt, jag utvecklar på min PowerBook och kör sedan siterna på min Xserve. Mac all the way.

Kör i och för sig Tiger, men det spelar ingen roll. Allt funkar i Panther också.

  • Medlem
  • Ulricehamn
  • 2006-03-24 10:23

ok, jag hittade http://wiki.rubyonrails.com/rails/pages/RailsOnOsx och det tycks alltså som att det är Locomotive man skall gå på. (och hysta in MySQL separat )

Får man fråga vad du kör för IDE? RadRails kändes lite tung på den gamla iMacen men Jedit och Rubypluginen verkar ok!?

Senast redigerat 2006-03-24 10:41

Locomotive är bra för att komma igång snabbt och lätt. Själv föredrar jag att ha lite mer kontroll på grejerna och installerar därför de olika delarna separat. Det är inte så krångligt. Men Locomotive är ett jättebra initiativ och funkar säkert utmärkt.

Som IDE använder jag den helt briljanta texteditorn TextMate som är lite av den "officiella" editorn för att utveckla i Rails på Macen. TextMate kostar €39, men är värd mycket mer och du hittar den på http://textmate.org.

  • Medlem
  • Gävle
  • 2006-03-24 11:35

Förövrigt så kan du får rätt bra hjälp med Rails på #rubyonrails.se på irc.freenode.net.

1
Bevaka tråden