Hallo.
ich mochte gerne bei
Model.find_by_plz(params[:plzcheck][:plz])
das Model austauschbar, abhängig von einer Bedingung machen…
Also je nachdem wer sich einlogged, bekommt eine andere Tabelle.
Einfach eine String für Model reinsetzen klappt irgendwie nicht…
Wie könnte das aussehen?
Gruß
Werner L.
Lindenburger Allee 22 - 50931
Köln
0221.8805 635
http://www.webagentur-laude.de
Am 20.12.2008 um 18:00 schrieb Werner L.:
Hallo.
ich mochte gerne bei
Model.find_by_plz(params[:plzcheck][:plz])
das Model austauschbar, abhängig von einer Bedingung machen…
Also je nachdem wer sich einlogged, bekommt eine andere Tabelle.
Hast du wirklich verschiedene Datenbank Tabellen?
paramModel = w%(City Town Settlement).include?(params[:model]) ?
params[:model] : ‘Town’
paramModel.constantize.find_by_plz …
ciao, tom
Thomas R. “TomK32” Koll || http://tomk32.de || http://ananasblau.com
just a geek trying to change the world
Skype: TomK32 || Mail: [email protected]
About Thomas R. Koll | Flickr
Hallo Werner,
entweder du machst es so:
if irgendwas
Model1.find_by_plz(params[:plzcheck][:plz]
else
Model2.find_by_plz(params[:plzcheck][:plz]
end
oder wenn du mehr als nur zwei Möglichkeiten haben willst und viele if
abfragen vermeiden willst, kannst du es auch so machen:
“Module”.constantize.find_by_plz(params[:plzcheck][:plz]
und “Module” is dann halt der name des Modules…
gruß
Manuel
Am 20.12.2008 um 18:00 schrieb Werner L.:
Wie wärs hiermit?
userModel = Kernel.const_get(params[:welches_modell_auch_immer])
userModel.find_by_plz(params[:plzcheck][:plz])
HTH
Werner L. schrieb:
On Saturday 20 December 2008, Daniel W. wrote:
Wie wärs hiermit?
userModel = Kernel.const_get(params[:welches_modell_auch_immer])
userModel.find_by_plz(params[:plzcheck][:plz])
Als Einladung an Cracker, meinst du? const_get mit einem String, der vom
Benutzer beliebig gesetzt werden kann, ist extrem gefährlich.
Sicherheitshalber nur mit einer Liste erlaubter Strings verwenden.
Michael
–
Michael S.
mailto:[email protected]
http://www.schuerig.de/michael/
Am 20.12.2008 um 18:00 schrieb Werner L.:
Hallo.
ich mochte gerne bei
Model.find_by_plz(params[:plzcheck][:plz])
das Model austauschbar, abhängig von einer Bedingung machen…
Also je nachdem wer sich einlogged, bekommt eine andere Tabelle.
Auf User eine Methode implementieren, die das gewünschte Model
zurückgibt (nicht als String, sondern die Klasse selbst). Und dann:
@current_user.model.find_by_plz(params[:plzcheck][:plz])
niko.
Am 20.12.2008 um 18:06 schrieb Thomas R. Koll:
Hast du wirklich verschiedene Datenbank Tabellen?
Hallo Thomas… und alle anderen danke für die Lösungsvorschläge.
mir fiel im nachhinein noch die case/when Konstruktion ein
def coice(var)
case var
when ‘123’
Model.find…
when ‘234’
Model1.find
else
Standardmodel
end
constantize und Kernel.const_get kenn ich noch gar nicht…sieht recht
kompakt aus…muß ich mir mal anlesen.
und -stimmt, das sollte ich mal überdenken, warum es verschiedene
Tabellen sind.
Könnte die Preise auch in eine einzige Tabelle packen,
allerdings hätte ich da wohl das gleiche Thema mit den Columns…
Gruß und Danke
Werner L.
Lindenburger Allee 22 - 50931
Köln
0221.8805 635
http://www.webagentur-laude.de