我传递了一个路径作为参数,所以params[:path]应该是name_path(:username => @user.name (我想把它作为路径传递,而不是url,所以把name_url放在参数中不是我想要的)。
由于您只能使用带有url的redirect_to,因此在使用redirect_to之前,我需要将路径更改为url。我该怎么做呢?
我发现这个方法是here
def path_to_url(path)
"http://#{request.host_with_port_without_standard_port_handling}/#{path.sub(%r[^/],'')}"
end但是,这是在2008年编写的,我想知道在Rails3中是否有更好的方法?
发布于 2012-07-20 04:45:30
从原始path to url post更新复制btw:也适用于Rails 2
# abs or /abs -> http://myx.com/abs
# http://grosser.it/2008/11/24/rails-transform-path-to-url
def path_to_url(path)
"#{request.protocol}#{request.host_with_port.sub(/:80$/,"")}/#{path.sub(/^\//,"")}"
end发布于 2011-09-18 05:02:23
我认为您可以使用带有路径的redirect_to,只要它是在当前应用程序的路由文件中定义的路由。从你的问题看情况似乎就是这样。
即name_path(:username => @user.name)
因此,以下内容应该是有效的。
redirect_to参数:路径
发布于 2011-09-24 07:31:05
我最终使用了
def path_to_url(path)
"http://#{request.host}/#{path.sub(%r[^/],'')}"
endhttps://stackoverflow.com/questions/7457715
复制相似问题