如何在页面上以“example.com”而不是“http://example.com”显示我的root_url

时间:2011-11-03 11:25:12

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我正在尝试以更干净的方式在我的用户个人资料中实现此网址: 个人资料地址:localhost:3000 / username

我就是这样做的: <%= link_to "localhost:3000#{root_path}#{@user.username}", @user.username %>

这样做很难看。我可以将我想要的url存储在辅助器或控制器中的变量中,例如shortened_root_url = localhost:3000 /(或网站名称),还有其他方法可以做到......

但是,在用户个人资料上显示时,是否有一种方法可以使用root_url并从网址中删除http://?

注意: 我在谈论用户在他/她的页面上显示的URL,不是在锚标记的href attr中。

1 个答案:

答案 0 :(得分:2)

你正在做的事情很不寻常,真的......所以可能没有直接的做法。

您可以查看“url_for”选项,了解哪些内容最适用。 http://apidock.com/rails/ActionView/Helpers/UrlHelper/url_for

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

根据您的需求,如果你所做的只是删除协议,为什么不只是创建完整的URL并使用gsub,例如:

link_to @user.username, username_url(:username => @user.username).gsub("http://", '')

您还需要一条合适的路线。我刚刚在这里猜到了你的路由,但是在Rails 2.3.X中说你有类似的东西:

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