注意:来自Rails routing with a parameter that includes slash(/)
的建议似乎对我不起作用......
我的路线如下:
get '/r/*code_or_url' => 'pixels#visit', :as => :visit, :format => false, :constraints => {:url => /.*/}, :escape => false
但如果我去
http://localhost:3000/r/http://www.google.com
我明白了:
没有路线匹配[GET]“/www.google.com”
我的网址栏位于
http://localhost:3000/www.google.com
my pixels_controller.rb看起来像
def visit
@code_or_url = params[:code_or_url]
redirect_to @code_or_url
end
并且日志中的参数是
Parameters: {"escape"=>false, "code_or_url"=>"http:/www.google.com"}
截至目前,我发现做我喜欢的唯一方法如下:
request.original_fullpath[3..-1]
其他一切屠宰原始请求