这是一个常见的场景:用户有一个仪表板,以便向用户显示一些相关信息。另外,使用可以在他的仪表板中执行一些操作。根据抽象,这些操作中的每一个都有自己的控制器,并且它们都不在仪表板控制器中。例如,为了更新有关用户的一些信息,您有user controller
而不是dashboard controller
。 dashboard controller
仅用于提供一些信息
好?现在,您在仪表板中有一个表单,将输入发布到任意控制器,我们希望在仪表板中呈现结果(成功消息,如果成功,则预先填充的表单,如果失败则出现错误)。如果我们在控制器中使用redirect_to
,我们将失去验证错误和预填充。如果我们使用render
,仪表板模板中会有未实例化的变量,我们会遇到一些错误。
处理这个的诀窍是什么?
P.S:有一些类似的问题,但答案是使用render
,但它会导致上述问题并且不起作用。
答案 0 :(得分:1)
您可以通过ajax执行此操作,并根据成功/失败删除/添加适当的html元素。
或者你可以
if @user.save?
redirect_to dashboard_path
else
@my_instance_variable = InstanceVariable.first
render "dashboard"
end