2011-03-10 112 views
29

request.fullpath給FULLPATH加傳遞的任何參數,如request.fullpath不帶參數

/page?param1=value&param2&value 

我怎樣才能得到公正的頁面沒有PARAMS?像

/page 

謝謝。

+0

可能重複http://stackoverflow.com/questions/4947652/rails-get-the-current-url-without-the-get-parameters – tommasop 2011-03-10 21:14:07

+0

我想,但我不能擺脫的?如/頁面? – Martin 2011-03-10 21:25:18

回答

65

雖然沒有記錄,Request的工作對我來說。我通常使用我的插件rails_web_console來處理請求對象。

更新:

由於注意到了turboladen 「從Rack::Request‌,其中Request的定義ActionDispatch::Request繼承」。

路徑沒有記錄在那裏,但源顯示script_name + path_info。

26

怎麼樣一個簡單的分裂:

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

#fullpath的源代碼顯示它是#path和#query的串聯。通過使用#path http://www.rubydoc.info/gems/rack/Rack/Request:fullpath保存一些工作(我明白這個問題已經被提出並得到解答,但對於未來的SO'ers而言仍然值得注意) – 2015-05-27 14:08:41

3

正則表達式

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

無需拆分,

request.path_info

給你只是

5

而不是使用fullpath,你可以簡單地使用path

request.path

+2

這沒有增加任何東西,http://stackoverflow.com/a/10148903/525478,這是3歲,更完整。 – 2015-07-04 00:38:31