0

別のコントローラーによって制御されるリソースの検証が失敗した場合に備えて、リクエスト リファラーのアクションとコントローラーをレンダリングするクリーンな方法を探しています。これは、複数の異なるビューからリソースを作成できるためです。

これまでのところ、これに沿って行ってきました:

        if @resource.save

            redirect_to resource_path(@resource)
        else
            request_referer_controller = Rails.application.routes.recognize_path(request.referrer)[:controller]
            request_referer_action = Rails.application.routes.recognize_path(request.referrer)[:action]
            search_param = Rails.application.routes.recognize_path(request.referrer)[:search_param]
            render "#{request_referer_controller}/#{request_referer_action}", search_param: search_param if request_referer_controller.include? "search"
            render "#{request_referer_controller}/#{request_referer_action}" if request_referer_controller.include? "profile"
        end

しかし、私にとってそれはどういうわけか醜いです。前のリクエストコントローラー、アクション、およびパラメーターを決定してレンダリングするには、レールに何かが組み込まれている必要がありますか?

すべてが組み込まれているだけでRailsに慣れてきました。

4

0 に答える 0