Ruby on rails 当有人点击获取我的Rails应用程序时,我如何获得完全相同的完整url

Ruby on rails 当有人点击获取我的Rails应用程序时,我如何获得完全相同的完整url,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-4,url,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 4,Url,当有人点击获取我的应用程序时,我想在我的rails应用程序中获取完整URL。喜欢 有人在浏览器中点击了URL http://localhost:3000/ 因此,我可以在rails应用程序中通过request.original_url获得此结果,这将为我提供正确的结果 但是当有人点击像这样的URLhttp://localhost:3000/#log-25sorequest.original\u url这并没有给我准确的url,只返回http://localhost:3000/但我也需要#log-

当有人点击获取我的应用程序时,我想在我的rails应用程序中获取完整URL。喜欢 有人在浏览器中点击了URL

http://localhost:3000/
因此,我可以在rails应用程序中通过
request.original_url
获得此结果,这将为我提供正确的结果

但是当有人点击像这样的URL
http://localhost:3000/#log-25
so
request.original\u url
这并没有给我准确的url,只返回
http://localhost:3000/
但我也需要
#log-25
这部分

那么,我如何才能获得与浏览器上的点击完全一致的整个URL呢?请帮助我。

这个
#
部分实际上并没有发送到服务器,它是一个用于页面导航的组件,除其他外,它只与浏览器相关


如果你需要整个东西,包括片段,你需要一些JavaScript代码来编码,并通过HTTP请求之外的另一个通道提供。HTTP请求被故意剥离。

可能与@zeitnot重复,这意味着没有js就没有解决方案。但是如果我用js处理这个场景,那么问题是我再次调用了我的服务器,我认为这不是一个好的方法。为什么你在控制器中关心锚?对我来说,这听起来像是一场灾难。你想达到什么目标?你想如何处理控制器中的信息?这意味着没有js就没有解决方案。但是如果我用js处理这个场景,那么问题是我再次调用了我的服务器,我认为这不是一个好方法。这是你一直坚持的方法,因为服务器不应该看到片段,它应该是客户端的。不幸的是,这就是标准,所以除非你想申请改变标准,并等待十年后才被采用,否则你只能坚持这个标准。如果您可以控制URI,那么可以提出一个不涉及片段的方案来绕过这个限制。