设计,用户#更新遥控器=>没错,如何传回错误?

时间:2011-07-18 23:58:33

标签: ruby-on-rails ruby-on-rails-3 devise

我有轨道3 +设计。我使用远程true的用户#edit表单。

问题是我无法弄清楚如何处理错误。在/registrations/update.js.erb中编写JS来处理成功案例很容易,但我该如何处理错误。我想我不希望在JS文件中处理这个条件,对吗?

拥有类似的东西可能会很好:

respond_to do |format|
  if @user.errors.blank? == true && @user.save
    format.js
  else
    format.js { render :errors, :notice => @user.errors}
  end
end

但我不知道如何用设计来完成这项工作?

有什么建议吗?似乎很多设计用户必须将remote-true添加到他们的用户编辑表单中?

由于

1 个答案:

答案 0 :(得分:0)

在我看来,你应该做些什么。你拥有一切,你只是没有展示你确定你拥有的.js部分':

<强>更新

所以对于你的路线你有:

app/config/routes.rb

devise_for :users, :controllers => {:registrations => "registrations"}

对于你的控制器你有:

app/controllers/registrations_controller.rb

class RegistrationsController < Devise::RegistrationsController
  def new
    super
  end

  def create
    super
    #or something similar to update.js
  end

  def update
  respond_to do |format|
    if @user.save
      format.js {render 'updated.js'} #or whatever the name of our file is 
    else
      @errors = @user.errors
      format.js { render 'errors.js'}
    end
  end
  end
end

这不起作用?