Ruby on rails 如何在页面上将我的根url显示为;example.com“;而不是",;http://example.com"

Ruby on rails 如何在页面上将我的根url显示为;example.com“;而不是",;http://example.com",ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,我正在尝试以更干净的方式在我的用户配置文件中实现此url: 配置文件地址:localhost:3000/用户名 我就是这样做的: 这是一种相当丑陋的方式。我可以将我想要的url存储在助手或控制器的变量中,或者其他一些东西中,例如缩写的_root_url=localhost:3000/(或站点名称),还有其他方法可以做到这一点 但是,当在用户配置文件上显示http://时,是否有一种方法可以使用root\u url并使用一些魔法从url中删除http://呢? 注: 我说的是在他/她的页面上显示

我正在尝试以更干净的方式在我的用户配置文件中实现此url: 配置文件地址:localhost:3000/用户名

我就是这样做的:

这是一种相当丑陋的方式。我可以将我想要的url存储在助手或控制器的变量中,或者其他一些东西中,例如缩写的_root_url=localhost:3000/(或站点名称),还有其他方法可以做到这一点

但是,当在用户配置文件上显示http://时,是否有一种方法可以使用root\u url并使用一些魔法从url中删除http://呢?

注:
我说的是在他/她的页面上显示给用户的URL,不是锚定标记的href attr中的

你所做的是不寻常的,真的。。。所以可能没有一种直接的方法

您可以查看“url\u for”选项,以查看最适用的选项。

它有“协议”或“仅路径”等选项,可以帮助您构建所需的内容

出于您的需要,如果您所做的只是删除协议,为什么不创建完整的url并使用gsub,例如:

link_to @user.username, username_url(:username => @user.username).gsub("http://", '')
你还需要一条合适的路线。我刚刚猜到了您在这里的路由,但在Rails 2.3.X中,您可能会遇到如下情况:

map.username '/:username', :controller => :users, :action => :show

url必须以方案开头
http
是一个计划。@Jonathan:不一定:啊哈,我忘了!无论如何,我们都对OP想要什么感到困惑。现在我们看到它只是一个url的文本版本。我想我现在可以做的更简单的方法是将根url地址“mysite.com”存储在一个变量中,然后调用它。我认为这没有必要。您可以使用url_for方法创建整个url(或创建一个正确的、命名的url),然后使用字符串逻辑(即gsub)删除http位。我已经在我的答案中添加了这个选项。配置文件地址:@user.username).gsub(“http:/”,“”),@user.username%>这很接近我想要的。URL显示在没有http://的页面上,但URL的显示方式不是我想要的。它显示的是localhost:3000/?user=username,而不是localhost:3000/username,这意味着您需要为此URL设置正确的路由。在答案中添加了一个eg。您只想在页面上显示路由生成的路径,但不显示“http://”。您不需要链接到,只需将修改后的路径插入页面: