同样在返回多个视图无论大家认为它是从所谓的部分
-
19-08-2019 - |
题
我目前重新使用部分上的两个不同的视图。
查看A
查看乙
在局部属于模型A,但与B型的关联,因此是适用于模型B为好。
它包含一个形式,并且数据被提交时,它总是将用户重定向到查看A.然而,当我从视图B提交表单,我想被重定向回视图B代替A型
它重定向现在要查看的原因是因为这是这种形式属于典型的。如此张贴时,会谈到控制器A,并使用重定向用户带到a_url。
我如何知道我的形式(或更多,使控制器动作),将用户重定向回到他们原来的地方?
谢谢!
解决方案
解决。
我添加了一个隐藏字段到我的形式包含在部分被渲染,然后我的respond_to块确定的控制器名称向何处发送该用户。
查看代码:
<%= hidden_field_tag 'submitted_from', "#{controller.controller_name}" %>
我的控制器代码:
if params[:submitted_from] == 'A'
redirect_to a_url
else
redirect_to b_url
end
其他提示
而不是使用一个隐藏的标签,你可能希望将这个会话:
session[:submitted_from] = new_model_url
和在其他动作..
redirect_to(session[:submitted_from])
session[:submitted_from] = nil
这是很容易切换出形式变量,而它可能更难(但不是不可能)伪造的会话。我会走这条路,如果它是我的应用程序。
不隶属于 StackOverflow