我有一个GET路由,在渲染视图之前,Controller会检查一个可选的参数。如果它在那里,我想绕过渲染视图并“直接”重定向到另一个控制器动作。另一个动作是PUT路由,我意识到我们不能简单地重定向到PUT路由,就像你可以到GET路由一样。
这大致是我到目前为止所尝试的但我不知道如何调用重定向,因为PUT是不可能的。也许有一些不同的设计模式来处理这种行为?提前谢谢。
Controller actions:
def foo
if 'XYZ'
# "redirect" to bar
else
render 'view'
end
end
#bar is a PUT route
def bar
...
end
答案 0 :(得分:0)
如果您有bar
行为的路线
match '/controller/bar/' => 'controller#bar'
像
一样修改它match '/controller/bar/' => 'controller#bar' , :via => [:get,:post,:put]
答案 1 :(得分:0)
如果您只想在满足条件的情况下使用bar
方法
def foo
if 'XYZ'
bar
else
render 'view'
end
end
这将运行bar
方法并使用您在那里的任何重定向。您更有可能想要重新审视您想要实现的目标。
如果你能提供更多细节,那么你会得到更好的答案。