繁体   English   中英

Rails:从一个控制器动作重定向到另一个(非GET)

[英]Rails: Redirecting from one controller action to another (non-GET)

我有一个GET路由,在呈现视图之前,Controller会检查可选参数。 如果有,我想绕过渲染视图,直接“重定向”到另一个控制器动作。 另一个动作是PUT路由,我意识到我们不能像重定向到GET路由那样简单地重定向到PUT路由。

到目前为止,这大致就是我尝试过的方法,但是我不知道如何调用重定向,因为使用PUT是不可能的。 也许有一些不同的设计模式来处理这种行为? 提前致谢。

Controller actions:

def foo      
  if 'XYZ'
    # "redirect" to bar
  else
    render 'view'
  end
end

#bar is a PUT route
def bar 
  ...
end

如果你有你的路线bar行动是这样的

match '/controller/bar/' => 'controller#bar'

修改像

match '/controller/bar/' => 'controller#bar' , :via => [:get,:post,:put]

如果您只想在满足条件的情况下使用bar方法

def foo      
  if 'XYZ'
    bar
  else
    render 'view'
  end
end

这将运行bar方法,并利用其中的任何重定向。 您更有可能想重新检查您要达到的目标。

如果您可以提供更多详细信息,那么您将获得更好的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM