ruby-on-rails 获取当前请求路径,但在Rails中更改了格式

e4eetjau  于 2023-05-02  发布在  Ruby
关注(0)|答案(1)|浏览(87)

我知道我可以使用request.fullpath来获取当前请求的相对路径(或者使用request.path来不包含查询参数)。在我的例子中,如果PDF生成失败,我想从PDF重定向到HTML,所以我想以不同的格式获得相应的路径。
显然我可以

request.fullpath.sub(".pdf", "")

但有没有更标准的方法呢例如,路径可能包括.pdf。当然,这种可能性是可以解决的,但这会使代码复杂化。
Rails版本61.

qxsslcnc

qxsslcnc1#

假设当前操作的URL在routes.rb中的某个位置指定,您可以使用redirect_to format: :htmlredirect_to format: nil将PDF请求重定向到HTML请求。
此外,如果您需要该HTML URL用于与重定向不同的用途,则可以使用url_for(format: :html)获取URL。
如果您的原始请求有一些查询参数,您可以尝试redirect_to request.query_parameters.merge(format: :html)

相关问题