Forum: Rails Germany has_and_belongs_to_many beziehung ohne id feld

52174eb9077c14e682ee5b4ea158e94f?d=identicon&s=25 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
64502c61ed41ff9e917499a2347dd9fe?d=identicon&s=25 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..
52174eb9077c14e682ee5b4ea158e94f?d=identicon&s=25 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.
C2b9b6837fb0d67fcc03f72718b96d1e?d=identicon&s=25 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:
52174eb9077c14e682ee5b4ea158e94f?d=identicon&s=25 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
This topic is locked and can not be replied to.