ruby-on-rails – 在没有HTTP重定向的情况下,从另一个控制器操作
发布时间:2020-12-16 22:54:11 所属栏目:百科 来源:网络整理
导读:我希望能够基于查询参数和数据库中的数据的组合,从一个控制器动作有条件地发送到另一个控制器动作. 我现在拥有的是: class OldController ApplicationController def old_controller_action if should_use_new_controller new_params = params.dup new_para
我希望能够基于查询参数和数据库中的数据的组合,从一个控制器动作有条件地发送到另一个控制器动作.
我现在拥有的是: class OldController < ApplicationController def old_controller_action if should_use_new_controller new_params = params.dup new_params[:controller] = "new_controller_action" redirect_to new_params return end # rest of old and busted end end class NewController < ApplicationController def new_controller_action # new hotness end end 这很好用,但它会发出HTTP重定向,这很慢.我希望能够做同样的事情,但在同一个HTTP请求中. 有干净的方法吗? 编辑:赏金将转到可以向我展示干净方式的人,使控制器及其操作相对不受影响(除了重定向代码本身). 解决方法
而不是跨操作调用代码,将代码提取到lib /或其他东西,并从两个控制器调用该代码.
# lib/foo.rb module Foo def self.bar # ... end end # posts_controller def index Foo.bar end # things_controller def index Foo.bar end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |