Rails,更改控制器内POST操作的URL

时间:2017-09-12 07:09:21

标签: ruby-on-rails url post controller ruby-on-rails-5

我希望在调用控制器内的操作时更改URL。我目前的情况:

控制器:

class EventController < ApplicationController
    def index 
        if city.blank?
            failure
        end
        ...
    end

    def failure
        ...
        render 'failure'
    end
end

路线:

get '/event', to: 'event#index'
post '/event/failure' => 'event#failure'

但是这段代码将url保存为/ events。期望的结果是/ events / failure

我看到支付'索引'和'失败'。我正在使用rails~5.0.0。

1 个答案:

答案 0 :(得分:0)

要更改URL,您需要进行重定向,如下所示:

class EventController < ApplicationController
    def index 
        if city.blank?
            redirect_to action: 'failure'
        end
        ...
    end

    def failure
        ...
        render 'failure'
    end
end

但是,HTTP/1.1

中提供的POST请求无法进行重定向

您可能需要考虑更改策略。