Ruby on rails 多个视图上的同一部分返回到从中调用它的任何视图
我目前正在两个不同的视图上重新使用一个部分 查看A 视图B 该部分属于模型A,但与模型B关联,因此也适用于模型B 它包含一个表单,当提交数据时,它总是将用户重定向到视图a。但是,当我从视图B提交表单时,我希望被重定向回视图B而不是表单a 它现在重定向到视图的原因是因为该表单所属的模型。因此,当发布时,它与控制器A对话,并使用重定向将用户带到一个url 我如何告诉我的表单(或者更多的控制器操作)将用户重定向回他们的来源 谢谢 已解决 我在表单中添加了一个隐藏字段,其中包含渲染部分的控制器名称,然后我的respond_to block决定将用户发送到哪里 查看代码:Ruby on rails 多个视图上的同一部分返回到从中调用它的任何视图,ruby-on-rails,ruby,forms,partials,Ruby On Rails,Ruby,Forms,Partials,我目前正在两个不同的视图上重新使用一个部分 查看A 视图B 该部分属于模型A,但与模型B关联,因此也适用于模型B 它包含一个表单,当提交数据时,它总是将用户重定向到视图a。但是,当我从视图B提交表单时,我希望被重定向回视图B而不是表单a 它现在重定向到视图的原因是因为该表单所属的模型。因此,当发布时,它与控制器A对话,并使用重定向将用户带到一个url 我如何告诉我的表单(或者更多的控制器操作)将用户重定向回他们的来源 谢谢 已解决 我在表单中添加了一个隐藏字段,其中包含渲染部分的控制器名称,然后
<%= hidden_field_tag 'submitted_from', "#{controller.controller_name}" %>
您可能希望将其放置在会话中,而不是使用隐藏标记:
session[:submitted_from] = new_model_url
在另一个动作中
redirect_to(session[:submitted_from])
session[:submitted_from] = nil
切换表单变量非常容易,而伪造会话可能更难(但并非不可能)。如果这是我的申请,我会走这条路
redirect_to(session[:submitted_from])
session[:submitted_from] = nil