Ho cercato per un po 'e ancora non riesco ancora a trovare una risposta soddisfacente. Ho due app. FrontApp e BackApp. FrontApp ha una risorsa attiva che imita un modello in BackApp. Tutte le convalide a livello di modello sono attive in BackApp e devo gestire le convalide di BackApp in FrontApp.Gestione degli errori ActiveResource
Ho seguente codice attiva di risorse:
class RemoteUser < ActiveResource::Base
self.site = SITE
self.format = :json
self.element_name = "user"
end
Questo imita un modello che è la seguente
class User < ActiveRecord::Base
attr_accessor :username, :password
validates_presence_of :username
validates_presence_of :password
end
Ogni volta che creo un nuovo utente_remoto in App anteriore; Chiamo. Salve su di esso. ad esempio:
user = RemoteSession.new(:username => "user", :password => "")
user.save
Tuttavia, poiché la password è vuota, ho bisogno di passare gli errori a FrontApp da BackApp. Questo non sta succedendo. Io proprio non capisco come farlo con successo. Questo deve essere uno scenario di integrazione comune; ma non sembra esserci una buona documentazione per questo?
mio controller di riposante che agisce come un proxy è il seguente:
class UsersController < ActionController::Base
def create
respond_to do |format|
format.json do
user = User.new(:username => params[:username], :password => params[:password])
if user.save
render :json => user
else
render :json => user.errors, :status => :unprocessable_entity
end
end
end
end
end
Che cosa è che mi manca? Qualsiasi aiuto sarà molto apprezzato.
Acclamazioni
'format.json {render: json => {: errors => @ customer.errors},: status =>: unprocessable_entity}' ----> Funzionerà ..... Ho anche avuto lo stesso problema perché stavo usando il codice come @ customer.errors.full_messages, non sta assegnando e restituendo l'applicazione della risorsa attiva –