我正在尝试以更干净的方式在我的用户个人资料中实现此网址: 个人资料地址: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中。
答案 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