Forum: Rails Germany has_and_belongs_to_many beziehung ohne id feld

Posted by Nils Berta (mcbernie)
on 2009-03-20 09:44
Hi an alle...

Also ich hab ein problem..
ich habe folgende tabellen:

sms_halle:
ID, name, notiz, tjms_hallenID, tjms_kundenID, .....

mediakatselecthalle:
mediaKatID, kundenID, hallenID

mediakat:
mediaKatID, medianame, dateiname.....


So.

ich will jetzt eine habtm beziehung zwischen sms_halle und mediakat
machen. in Beziehung zu einander stehen sms_halle.tjms_hallenID =
mediakatselecthalle.hallenID und sms_halle.tjms_kundenID =
mediakatselecthalle.kundenID

wie stelle ich das an?

Hoffe ich konnte mich deutchlich genug ausdrücken ;-)

lg
nico
Posted by Werner Laude (Guest)
on 2009-03-20 09:58
(Received via mailing list)
Am 20.03.2009 um 09:44 schrieb Nils Berta:

>
>
> wie stelle ich das an?

war um ohne id ?

http://ramblings.gibberishcode.net/archives/rails-...
http://www.jumbabox.com/2008/06/ruby-on-rails-many...
http://railscasts.com/episodes/archive

Gruß von  Werner der auch so einige Fragen für dieses Thema noch hat..
Posted by Nils Berta (mcbernie)
on 2009-03-20 10:06
Werner Laude wrote:
> Am 20.03.2009 um 09:44 schrieb Nils Berta:
> 
>>
>>
>> wie stelle ich das an?
> 
> war um ohne id ?
> 
> http://ramblings.gibberishcode.net/archives/rails-...
> http://www.jumbabox.com/2008/06/ruby-on-rails-many...
> http://railscasts.com/episodes/archive
> 
> Gru� von  Werner der auch so einige Fragen f�r dieses Thema noch hat..

Achso, ich sollte noch erwähnen, dass die Datenbank auf einem Server 
läuft, dessen Anwendungen genau die Datenbank so wie sie ist verwendet. 
ich habe also leider nicht die möglichkeit irgendwas zu ändern. *gr*
Aber sonst wäre es auch wirklich zu einfach.
Posted by Timo Borreck (Guest)
on 2009-03-20 11:55
(Received via mailing list)
Hi Nils,

also auf den ersten Blick hätte ich angenommen, dass das ganze mit
"has_many :through" gelöst werden kann.

Aber da die Tabellenattribute ja leider nicht den Rails-Konventionen
entsprechen und du diese nicht ändern kannst, geht dies wohl nicht.
(Ich lasse mich da gern verbessern.)

Ich würde es in etwa wie folgt machen. Du legst im Model, das zu
sms_halle gehört, eine Funktion an, die dir mithilfe eines
SQL-Statements direkt die zugehörigen mediakats liefert:

class SmsHalle < ActiveRecord::Base
  def mediakats
    Mediakat.find_by_sql("select mk.mediaKatID, mk.medianame, " +
                         "mk.dateiname from sms_halle s " +
                         "join mediakatselecthalle m "+
                         "on s.tjms_hallenID=m.hallenId" +
                         "and s.tjms_kundenID=m.kundenId " +
                         "join mediakat mk " +
                         "on m.mediaKatID=mk.mediaKatID " +
                         "where s.id="+self.id)
  end
end

In einem Kontroller könnte das dann so aussehen:
@sms_halle = SmsHalle.find(id)
@mediakats = @sms_halle.mediakats


Ich habe das jetzt schnell runtergetippt, da sind sicher noch einige
Fehler drin. Aber ich hoffe die Idee ist klar geworden.


Viele Grüße
Timo


Am Freitag, den 20.03.2009, 10:06 +0100 schrieb Nils Berta:
Posted by Nils Berta (mcbernie)
on 2009-03-20 13:15
So simple die idee.. da hätte ich auch selber drauf kommen können..

ich danke für die hilfe.. ich werde es wohl so machen..

nochmals danke ;-)


viele grüße
nils
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.