2 Stimmen

? in routes.rb mit map.with_options ruby

Ich verwende benannte Routen in meinem Ruby-Code. Ich komme aus der php-Welt, wo man Informationen mit $_GET y $_POST . Ich habe mich gefragt, ob es eine Möglichkeit gibt, dies in die routes.rb wie diese zu setzen:

map.with_options :controller => 'test' do |m|
  m.someurl 'someurl?search=someterm', :action => 'index'
end

Derzeit kehrt sie zurück can't convert Hash into String . Danke!

Justin

3voto

Toby Hede Punkte 36095

Wenn Sie nur einen Query String verwenden möchten, müssen Sie Ihre Route nicht angeben. Die Parameter Objekt wird alle übergebenen Parameter enthalten.

map.with_options :controller => 'test' do |m|
  m.some_url 'someurl', :action => 'index'
end

Wenn Sie dann die Helper-Methode verwenden:

irgendein_url_pfad(:suche=> "someterm")

Erstellt den Wert der Abfragezeichenfolge für Sie.

Wenn Sie jedoch einen Parameter an einen Controller übergeben möchten, können Sie ihn in Ihrer Route binden:

map.connect ':controller/:action/:id/:search' 

In Ihrem Controller können Sie dann darauf zugreifen:

params[:search]

In Ihrem Fall würde dies etwa so aussehen:

map.with_options :controller => 'test' do |m|
  m.some_url 'someurl' :action => 'index'
end

Le site Rails-Routing-Leitfaden bietet einen hervorragenden Überblick über das Thema.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X