Je cherchais depuis longtemps et je n'arrive pas encore à trouver une réponse satisfaisante. J'ai deux applications. FrontApp et BackApp. FrontApp a une ressource active qui imite un modèle dans BackApp. Toutes les validations au niveau du modèle se trouvent dans BackApp et je dois gérer ces validations BackApp dans FrontApp.Gestion des erreurs ActiveResource
Je suit le code actif-ressource:
class RemoteUser < ActiveResource::Base
self.site = SITE
self.format = :json
self.element_name = "user"
end
Cela imite un modèle qui est le suivant
class User < ActiveRecord::Base
attr_accessor :username, :password
validates_presence_of :username
validates_presence_of :password
end
Chaque fois que je crée une nouvelle RemoteUser en application avant; J'appelle .save dessus. par exemple:
user = RemoteSession.new(:username => "user", :password => "")
user.save
Cependant, étant donné que le mot de passe est vide, je dois passer en arrière les erreurs à FrontApp de BackApp. Cela n'arrive pas. Je ne comprends tout simplement pas comment le faire avec succès. Cela doit être un scénario d'intégration commun; mais il ne semble pas y avoir une bonne documentation pour cela?
Mon contrôleur reposant qui agit comme un proxy est la suivante:
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
Qu'est-ce que je suis absent? Toute aide sera très appréciée.
Vive
'format.json {render: json => {: erreurs => @ customer.errors},: status =>: unprocessable_entity}' ----> Cela fonctionnera ..... J'ai aussi eu le même problème parce que J'utilisais le code comme @ customer.errors.full_messages, il n'attribue pas et ne renvoie pas l'application de ressource active –