gpt4 book ai didi

ruby-on-rails - Rails 路由 - 带 block 和状态代码的重定向

转载 作者:数据小太阳 更新时间:2023-10-29 06:59:25 25 4
gpt4 key购买 nike

好吧,我一直在用这个把头撞到砖墙上 - 非常感谢任何帮助!

我正在重定向旧的 url,并且在大多数情况下这很容易并且运行良好,例如:

match '/pages/holiday-specials/', :to => redirect( "/accommodation", :status => 301 )

但是,我需要一个特殊的包罗万象的规则来进行一些正则表达式检查。这很好用,除了我无法让它通过状态。这会重定向并执行我需要的操作,但不会发送 301 状态:

match '/*:path', :to => redirect( lambda { |params| "/operator/#{/[^\d](\d+)([^\d]|$)/.match(params[:path])[1]}" }, :status => 301)

有什么想法吗?

最佳答案

将 block 移到方法括号外,如下:

match '/*:path', :to => redirect(:status => 301) { |params| "/operator/#{/[^\d](\d+)([^\d]|$)/.match(params[:path])[1]}" }

或者把它分成多行:

match '/*:path', :to => redirect(:status => 301) do |params|
"/operator/#{/[^\d](\d+)([^\d]|$)/.match(params[:path])[1]}"
end

关于ruby-on-rails - Rails 路由 - 带 block 和状态代码的重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11880314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com