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
BeitragVerfasst: 18 Nov 2005, 12:55 
Offline
Obfuscator
Benutzeravatar

Registriert: 23 Okt 2005, 13:38
Beiträge: 571
Wohnort: Bern (CH)
Hallo alle

Ich habe X Users und X Organisatoren, wobei jeder User zu beliebig vielen Organisatoren gehören kann.
Nun erstelle ich eine Seite, auf welcher sich Benutzer bei Organisatoren anmelden können, um bei ihnen aufgenommen zu werden. Dabei möchte ich in @organisators alle Organisatoren speichern, zu welchen der User noch nicht gehört.
Gibt es dafür eine einfachere Variante, als die n:n Verbindungstabelle zu durchforsten? So etwas wie:



1
2
@user_belongs_to = @user.organisator
@user_does_not_belong_to = @user.organisator_not


Danke und Grüsse
Josh

_________________
www.josh.ch - Personal Web
www.incense.ch - Web development (to come)
www.ayom.com - Professionelles deutschsprachiges Webmaster Portal

"Eine Uhr, die stehen bleibt, zeigt 2x täglich die korrekte Uhrzeit an. Das ist besser als eine Uhr, die falsch geht." :-)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 19 Nov 2005, 08:22 
Offline
Meister
Benutzeravatar

Registriert: 03 Aug 2004, 07:27
Beiträge: 290
Wohnort: Stuttgart
Hi,

bau dir doch einfach ein ":belongs_not" selbst.

Du brauchst nichts weiter, als eine angepasste SQL-Abfrage.
Wenn es in einer Abfrage zu unübersichtlich wird, kannst du auch
einfach zwei Abfrageergebnisse voneinander abziehen.
(Schliesslich steht uns die gesamte Ruby-Power zur Verfügung)

Hier ein Beispiel aus meiner Applikation:

models/portfolio.rb



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

class Portfolio < ActiveRecord::Base
has_many :portfoliopositions

def self.find_unassigned_portfolios certificate_id
a = find_by_sql(["SELECT distinct b.id, b.name FROM portfoliopositions as a left join portfolios as b on b.id=a.portfolio_id
WHERE a.certificate_id = ?
"
, certificate_id] ) ;
b = find_by_sql "SELECT id, name from portfolios "
b - a
end
end



Das mag nicht der Weisheit letzer Schluss sein, funktioniert jedoch.

Um es zu übersetzen:
ein Certificate kann in beliebig vielen Portfolios existieren, Jedoch jewiels nur einmal. Portfoliopositions ist die Korrelationstabelle.

find_unassigned_portfolios listet alle Portfolios auf, die noch nicht infiziert sind.

_________________
Strategie ist das halbe Leben, Intuition der Rest.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 19 Nov 2005, 20:31 
Offline
Obfuscator
Benutzeravatar

Registriert: 23 Okt 2005, 13:38
Beiträge: 571
Wohnort: Bern (CH)
Okay, Danke dir! Hab nur gedacht, es gäbe eine bequemere Variante. Aber so wird's auch gehen. :-)

_________________
www.josh.ch - Personal Web
www.incense.ch - Web development (to come)
www.ayom.com - Professionelles deutschsprachiges Webmaster Portal

"Eine Uhr, die stehen bleibt, zeigt 2x täglich die korrekte Uhrzeit an. Das ist besser als eine Uhr, die falsch geht." :-)


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 9 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: