2011-09-13 80 views
0

這可能是一個相當簡單的問題,但我的目標是重定向到我的應用程序的另一部分並自信地傳遞參數。如何通過重定向傳遞Rails中的編碼參數?

現在,我想將:mobile和:content參數從「/ xxx」傳遞給「/ yyy」。

參數來清潔和精細到「/ XXX」,但我目前將它們像這樣:

redirect_to "/yyy?mobile=#{params[:mobile]}&content=#{params[:content]}" 

儘管這樣的工作,這似乎有一個編碼問題。對於一個空間來說,空間會變成「%20」而不是「+」,並且它看起來很髒。

+1

你爲什麼不使用航線的幫手?我認爲創建這樣的路線在軌道上是不好的做法.. – antonversal

+0

是的,可悲的是,這是一個橡皮筋修復。你有任何路線助手的資源? –

+0

看看我的回答 – antonversal

回答

3

可以使用url_encode方法,例如:

redirect_to url_encode("/yyy?mobile=#{params[:mobile]}&content=#{params[:content]}") 

或者乾脆用redirect_to的與參數:

redirect_to :action => 'toto', :param_1 => 'titi', :param_2 => 'tata' 
+0

+1 for redirect_to帶參數 – klochner

0

正如我在評論創建這樣的路徑已經說過是在鐵軌不好的做法。

所以,你應該在routes.rb中設定的路徑,然後使用像路線:

redirect_to yyy_path(:mobile => params[:mobile], :content => params[:content]) 

更多信息,請按照http://guides.rubyonrails.org/routing.html