没有参数的request.fullpath

42

request.fullpath提供完整路径以及传递的任何参数,例如

/page?param1=value&param2&value

如何只获取没有参数的页面?例如

/page

谢谢你。


可能重复的问题 https://dev59.com/pG445IYBdhLWcg3wR4NN - tommasop
我尝试过了,但是我无法去掉像/page?这样的问号。 - Martin
4个回答

79

使用path替代fullpath

虽然没有记录,但request.path适用于我。 我通常使用自己的插件rails_web_console来操作请求对象。

更新:

正如turboladen所指出的那样,"[ActionDispatch::Request][2]继承自[Rack::Request‌][3]​,其中定义了request.path"。

path没有记录在那里,但源代码显示了script_name + path_info。


28

那么一个简单的分割呢:

request.fullpath.split("?")[0]

5
#fullpath的来源显示它是#path和#query的连接。为了节省工作量,只使用#path即可。http://www.rubydoc.info/gems/rack/Rack/Request:fullpath(我知道这个问题已经被问过和回答过,但对于未来的Stack Overflow用户仍然值得注意) - Pat Newell
仅仅因为一个答案可行,并不意味着它是正确的答案。点赞是缺乏责任心的一个例子。 - Ekkstein

9

无需拆分,

request.path_info

就可以给你想要的内容。


3

正则表达式

request.fullpath.gsub( /\?.*/, "" )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接