我使用Devise 4.2.1并在Bootstrap模式中呈现注册表单。当用户尝试注册失败时,我希望能够使用注册错误重新呈现模式。我希望会有after_unsuccessful_signup_path_for
这样的东西,但是找不到任何东西。
我想我可以自定义Devise控制器中的create
操作,但每当我尝试自定义任何Devise控制器操作时,它似乎总是变得非常复杂。
有什么简单的方法可以让我远离压倒一切的控制器动作(或至少具有极小的侵入性)?
如果没有,从控制器动作自动重新渲染此模态的最佳方法是什么?
答案 0 :(得分:0)
在rails中你通常有一个控制器可以做这样的事情:
def create
@foo= Foo.new(foo_params)
if foo.save
redirect_to @thing
else
render template: 'new'
end
end
当记录无效时,将呈现new
模板并发送以响应POST请求。设计在这方面没有什么不同(稍微复杂一些)。
没有after_unsuccessful_signup_path_for
,因为它不是您可以使用GET请求检索的资源。 “错误”页面实际上只是“创建”操作发送的响应。
如果要在模态中显示错误,您需要send the request with ajax并更新模式或自定义设计视图,以便在用户“停留在模态”时显示。