Forum: Rails Germany select dropdown bestehend links

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
3a54df824e6829bb70bc26bf147ba6c6?d=identicon&s=25 Markus K. (thorquad)
on 2008-11-27 14:22
Hallo,
versuche mich gerade in RoR einzuarbeiten.
Habe lange online gesucht, aber leider keine Lösung zu meinem Problem
gefnuden, was ich eigentlich nicht ganz glauben kann.

Ich hätte gern ein "Select" bei dem ich durch Auwahl direkt, ohne einen
"Submit Button" auf eine andere Seite gelinkt werde.
Im Moment rufe ich mir im Select auf onchange einen Helper auf der mit
redirect_to zur entsprechenden Seite verlinkt. Nur das im
application_helper "redirect_to" eine "undefined method" ist.

Wahrscheinlich bin ich sogar komplett auf dem Holzweg. Es muss doch eine
elegantere Lösung geben. Mit JavaScript wäre das ganze kein großes
Problem. Würd's aber gerne ohne lösen.

Vielen Dank für eure Hilfe im Voraus.
1b60728741c2200c6d25d2cd7320aebc?d=identicon&s=25 Sven Rimbach (Guest)
on 2008-11-27 14:56
(Received via mailing list)
Hallo Marcus,

> Ich hätte gern ein "Select" bei dem ich durch Auwahl direkt, ohne einen
> "Submit Button" auf eine andere Seite gelinkt werde.

Möchtest Du die komplette Seite neu laden, oder nur einen Teil
ändern? Der Bereich mit der Select-Box selber soll doch vermutlich
bleiben, oder?

In diesem Fall wären Partials Dein Freund.

Im View sieht es ungefähr so aus:
(...)

<%= select_tag <DATEN HIER> %>

<%= observe_field(:<NAME DES SELECT>,:frequency => 0.2,:update =>
"Layer1",
:url => {:action => :DOSOMETHING}) %>

              <div id="Layer1"> <%= render :partial =>'FOOBARl' %>


Der Controller:

def DOSOMETHING
  name =  request.raw_post  # das ist das Ergebnis der Auswahl
 # Jetzt passiert was tolles
  render :partial => 'FOOBAR'
end


Hope It Helps

  Sven
971ab4b7ec9679826fc359bdcc84f7d6?d=identicon&s=25 Stefan Frank (mugwump)
on 2008-11-27 16:11
(Received via mailing list)
Hallo Marcus,

hier gibt's eine langwierige Auseinandersetzung mit dem Thema (auch
wenn's dabei darum geht, das eine DropDown in Abhängigkeit von einem
anderen zu ändern):
http://www.roryhansen.ca/2005/06/21/related-drop-d...

Die :frequency  sollte in dem Beispiel allerdings überflüssig sein,
dass observe_field reagiert für select-boxen auf onchange, ansonsten
geht das ganze time-based, muss ja nicht sein für selects..

  Wenn es ein roundtrip zum Server werden soll, dann kriegt man den
ausgewählten Wert als Parameter mit und kann dann als Antwort zum
Beispiel ein rjs-redirect schicken ( render :update { |page|
page.redirect_to <evaluate param and determine redirect-target...>'} -
mehr dazu unter:
http://www.caboo.se/articles/2006/2/20/assert-your...)

Einfacher geht's vermutlich, wenn man die urls gleich in das select
reinschreibt und dann per window.location.href=.... aufruft: Meines
Wissens fehlt dem observe_field allerdings eine Methode, um javascript
direkt aufzurufen(oder bin ich da nur hinterher mit den Versionen?!) -
daher wird es zum Beispiel hier auch aufgehackt:

http://joshhuckabee.com/rails-observe-field-function-and

Na, elegant ist das wohl nicht, aber das spart einem dann den remote-
aufruf.

Grüßestefan


PS: Geht das eigentlich nur mir so, oder sind diese rjs-geschichten am
Ende dann doch immer komplizierter&schlechter zu warten, als die
beiden Layer fein säuberlich auseinanderzuhalten und das javascript
direkt zu schreiben? Was ist nur so schlimm an JavaScript, dass man da
noch nicht mal eine Zeile schreiben darf, selbst wenn es einen halben
Tag Arbeit spart?! Und sauberer wird der Code dadurch auch nicht
wirklich, wenn man dann früher oder später doch noch "zu Fuß" an das
javascript ran muss....

PPS: Für eine reine rjs-freie  Lösung bietet sich JS-Named-Routes
an(http://github.com/jsierles/js_named_routes/tree/master
) an - damit lassen sich auch im Client die Routes zusammen bauen, die
man auf dem Server in seiner Map hat...



Am 27.11.2008 um 14:51 schrieb Sven Rimbach:

> In diesem Fall wären Partials Dein Freund.
>
> Hope It Helps
>
>   Sven
>
>
> _______________________________________________
> rubyonrails-ug mailing list
> rubyonrails-ug@headflash.com
> http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

----
stefan frank
vierundsechzig.de
software&service
weberstr. 10
69120 heidelberg
tel. +49 (0) 6221 7277049
mobil +40 (0) 173 2383390
mail s.frank@vierundsechzig.de
www.vierundsechzig.de
This topic is locked and can not be replied to.