2011-07-18 10 views
1

私は3 + deviseのレールを持っています。そして、私はリモートの真を使用してユーザーフォームを編集しています。devise、User#update with remote => True、バックエラーを返す方法?

問題エラーを処理する方法を理解できません。 /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 

これは機能しません。

+0

あなたが早くそれを見たらコードをもう一度チェックしてもらえますか?いくつかのヴァールは間違っていた。 – s84

+0

そうだけど、これは私が上書きしてスーパーを持っているdevise登録コントローラです。私はこれをどのように追加するのか分かりません。 – AnApprentice

関連する問題