首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails 3将路径更改为url

Rails 3将路径更改为url
EN

Stack Overflow用户
提问于 2011-09-18 04:53:48
回答 3查看 2.4K关注 0票数 0

我传递了一个路径作为参数,所以params[:path]应该是name_path(:username => @user.name (我想把它作为路径传递,而不是url,所以把name_url放在参数中不是我想要的)。

由于您只能使用带有url的redirect_to,因此在使用redirect_to之前,我需要将路径更改为url。我该怎么做呢?

我发现这个方法是here

代码语言:javascript
运行
复制
def path_to_url(path)
  "http://#{request.host_with_port_without_standard_port_handling}/#{path.sub(%r[^/],'')}"
end

但是,这是在2008年编写的,我想知道在Rails3中是否有更好的方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-20 04:45:30

从原始path to url post更新复制btw:也适用于Rails 2

代码语言:javascript
运行
复制
# 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
票数 2
EN

Stack Overflow用户

发布于 2011-09-18 05:02:23

我认为您可以使用带有路径的redirect_to,只要它是在当前应用程序的路由文件中定义的路由。从你的问题看情况似乎就是这样。

name_path(:username => @user.name)

因此,以下内容应该是有效的。

redirect_to参数:路径

票数 0
EN

Stack Overflow用户

发布于 2011-09-24 07:31:05

我最终使用了

代码语言:javascript
运行
复制
def path_to_url(path)
  "http://#{request.host}/#{path.sub(%r[^/],'')}"
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7457715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档