2011-03-10 18 views
29

request.fullpath da la ruta completa más cualquier parámetro pasado, comorequest.fullpath sin parámetros

/page?param1=value&param2&value 

¿Cómo puedo obtener sólo la página sin params? Como

/page 

Gracias.

+0

posible duplicar http://stackoverflow.com/questions/4947652/rails-get-the-current-url-without-the-get-parameters – tommasop

+0

lo he intentado, pero no puedo deshacerme del ? como/page? – Martin

Respuesta

65

Aunque no documentado, request.path trabajó para mí. Usualmente uso mi complemento rails_web_console para jugar con el objeto de solicitud.

Actualización:

Como notado por turboladen, "ActionDispatch::Request hereda de Rack::Request‌, en donde se define request.path".

ruta no está documentada allí, pero la fuente muestra script_name + path_info.

26

¿qué pasa con una división simple:

request.fullpath.split("?")[0] 
+4

la fuente de #fullpath muestra que es una concatenación de #path y #query. Guarde un poco de trabajo simplemente usando #path http://www.rubydoc.info/gems/rack/Rack/Request:fullpath (entiendo que esto se ha preguntado y respondido, pero vale la pena mencionarlo para futuros SO) –

3

expresión regular

request.fullpath.gsub(/\?.*/, "") 
5

hay necesidad de dividir,

request.path_info

le da sólo que

5

En lugar de utilizar fullpath puede simplemente usar path.

request.path

+2

Esto no agrega nada a http://stackoverflow.com/a/10148903/525478, que es 3 años más antiguo y más completo. –

Cuestiones relacionadas