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
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.
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:
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.