3

注意:来自Rails 路由的建议,其参数包含斜杠(/)

似乎对我不起作用...

我的路线看起来像:

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

我的 pixel_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]

其他一切都扼杀了最初的要求

4

0 回答 0