rubyforen.de
http://forum.ruby-portal.de/

ruby on rails: arbeiten mit modellen
http://forum.ruby-portal.de/viewtopic.php?f=14&t=791
Seite 1 von 1

Autor:  strongarm [ 24 Mai 2005, 10:24 ]
Betreff des Beitrags:  ruby on rails: arbeiten mit modellen

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

Autor:  mellow_moe [ 24 Mai 2005, 13:05 ]
Betreff des Beitrags: 

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



Autor:  strongarm [ 25 Mai 2005, 22:38 ]
Betreff des Beitrags: 

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:

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/