设计 - 在不成功注册时渲染模态

时间:2017-04-28 18:19:24

标签: ruby-on-rails devise bootstrap-modal

我使用Devise 4.2.1并在Bootstrap模式中呈现注册表单。当用户尝试注册失败时,我希望能够使用注册错误重新呈现模式。我希望会有after_unsuccessful_signup_path_for这样的东西,但是找不到任何东西。

我想我可以自定义Devise控制器中的create操作,但每当我尝试自定义任何Devise控制器操作时,它似乎总是变得非常复杂。

有什么简单的方法可以让我远离压倒一切的控制器动作(或至少具有极小的侵入性)?

如果没有,从控制器动作自动重新渲染此模态的最佳方法是什么?

1 个答案:

答案 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并更新模式或自定义设计视图,以便在用户“停留在模态”时显示。