2012-07-24 135 views
0

我入門到Ajax和紅寶石和我的問題是,我不能得到錯誤信息,當我與刷新Ruby on Rails的Ajax錯誤處理

控制器

class InvitesController < ApplicationController 

    def request_invite 
     render_404 unless request.xhr? 

     @invitation = Invite.new(params[:invite]) 
     if @invitation.save 
      @return = { :error => false, :response => "OK" } 
     else 
      @return = { :error => true, :response => "BAD" } 
     end 
     render :json => ActiveSupport::JSON.encode(@return) 
    end 

end 
通過後提交表單我能得到

所以現在我有自定義錯誤,但我想,以取代「BAD」與實際的錯誤,形式回報...

模型

class Invite < ActiveRecord::Base 

    validates :email, :presence => true, :uniqueness => true 

    validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i 

end 

我該怎麼做?

回答

1

嘗試這樣:

@return = { :error => true, :response => @invitation.errors.full_messages.join(", ") }