我有轨道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添加到他们的用户编辑表单中?
由于
答案 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
这不起作用?