如何通过重定向在Rails中传递编码参数?

时间:2011-09-13 14:54:39

标签: ruby-on-rails ruby-on-rails-3 url redirect url-routing

这可能是一个相当简单的问题,但我的目标是重定向到我的应用程序的另一部分并自信地传递参数。

现在,我想将:mobile和:content参数从“/ xxx”传递给“/ yyy”。

参数干净,精细到“/ xxx”,但我目前正在传递它们:

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

尽管有效,但这似乎有一个编码问题。空间出现为“%20”而不是“+”,而且看起来一般都很脏。

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:0)

正如我在评论中所说,创建这样的路线是铁路上的坏习惯。

所以你应该在routes.rb中设置路由,然后使用如下路由:

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

了解更多信息,请点击http://guides.rubyonrails.org/routing.html

相关问题