ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: ruby on rails: arbeiten mit modellen
BeitragVerfasst: 24 Mai 2005, 10:24 
Offline
Lehrling

Registriert: 04 Mai 2005, 19:52
Beiträge: 53
Hallo zusammen

Ich bin einfach noch zu blöd, das mit diesen Modellen unter Ruby on Rails zu begreifen. Weiss jemand wo es gute Beispiele dafür gibt was ich alles mit models anstellen kann und was nicht? Ich find da einfach nicht genügend Informationen und die Tutorials schneiden dieses Thema nur so schnell schnell an.

Ich habe 3 Tabellen in MySQL:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

create table webmasters (
id int(11) auto_increment not null,
firstname varchar(80),
lastname varchar(80)
)

create table billingproviders (
id int(11) auto_increment not null,
name varchar(80)
)

create table webmasters_billingproviders (
webmaster_id int(11),
billingprovider_id int(11)
own_billingprovider_id varchar(80)
)


Ich hab 2 Controller und Modelle erstellt:


1
2
3
4
5
6

script/generate model Webmaster
script/generate controller webmaster

script/generate model Billingprovider
script/generate controller Billingprovider


Im Controller webmaster_controller wenn ich nicht wüsste, dass es wahrscheinlich besser geht, würde ich folgende query machen:



1
2

@info = Billingprovider.find_by_sql "select a.name, b.replacement_id from billingproviders as a left outer join webmasters_billingproviders as b on a.id=b.billingprovider_id where b.webmaster_id='1'"


Dies würde mir dann folgende Information in den @info hash reinschreiben:


1
2
3
4
5
6

+--------+----------------+
| name | replacement_id |
+--------+----------------+
| CCBill | 123456 |
+--------+----------------+


Gibt es dafür einen Weg in Ruby on Rails der dementsprechend über Objekte funktioniert? So mit diesen Zusammenhängen über Assotiationen wie has_many und belongs_to und so weiter?

Schon jetzt danke fürs lesen.
Chris


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 24 Mai 2005, 13:05 
Offline
Geselle

Registriert: 25 Jan 2005, 20:50
Beiträge: 173
Wohnort: Köln
Ich habe zwar nie mit ActiveRecord gearbeitet, aber theoretisch ist das sehr einfach :)
Ich gehe von einer many to many Assoziation aus.
Laut API solltest du die Join Tabelle billingproviders_webmasters nennen, da b alphabetisch vor w kommt.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

class Webmaster < ActiveRecord::Base
has_and_belongs_to_many :billingproviders
end

class Billingprovider < ActiveRecord::Base
has_and_belongs_to_many :webmasters
end

# usage
w = Webmaster.create
w.billingproviders << Billingprovider.new
w.billingproviders << Billingprovider.new




Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 25 Mai 2005, 22:38 
Offline
Lehrling

Registriert: 04 Mai 2005, 19:52
Beiträge: 53
Danke für deine Ausführung mellow_moe. Leider bin ich ein völliger Anfänger in voller Objektorientierer Programmierung. Deshalb hab ich etwas lange gebraucht herauszufinden, dass damit ein neuer record angelegt wird und ich wollte pro webmaster die billingproviders rausziehen. Mit der Tabellenkonvention hast du mir sehr weitergeholfen.



1
2
3
4
5

def billing_codes
@webmaster = Webmaster.find(1);
@billingproviders = @webmaster.billingproviders
end


Jetzt muss ich nur noch das value in das div tag beim text_field kriegen.

Verflucht, Ruby ist eine wirklich geile Sprache, aber ohne OO Kentnisse hart zum umsteigen :oops:


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: