2009-06-16 7 views
0

je forme dans les vues/utilisateurs/show.html.erbshow message d'erreur de validation d'un autre contrôleur

<% form_for [@user,Wall.new] do |f| %> 
<%= f.error_messages %> 
<p> 
<%= f.label :message %><br /> 
<%= f.text_area :message,:rows=>4 %> 
</p> 
<%= f.hidden_field :sender_id,:value=>current_user.id %> 
<p><%= f.submit "Submit" %></p> 
<% end %> 

et j'ai cette méthode de validation dans les modèles/wall.rb

validate: isfriend ?

def isfriend? 
errors.add(:message,'You have to be a friend to send message') if !Friendship.find(:first, 
:conditions=>"requester_id=#{self.sender_id} and accepter_id=#{self.receiver_id} and status='accepted' 
or requester_id=#{self.receiver_id} and accepter_id=#{self.sender_id} and status='accepted'") 
end 

Tout est bien la validation fonctionne et d'économie désactiver aussi donne un message d'erreur mais pas de façon normale, il donne un message comme celui

ActiveRecord :: RecordInvalid à WallsController # créer

validation a échoué: message Vous devez être un ami d'envoyer un message

RAILS_ROOT: C:/Users/MaDOnos/Documents/NetBeansProjects/tttttt

Comment peut montrer ce message d'erreur de manière équitable.

Répondre

0

Je ne vois pas quelle est votre question? L'enregistrement AR échoue avec RecordInvalid comme il se doit et vous recevez le message de validation que vous avez fourni.

+0

Question est là si vous regardez attentivement. Message d'erreur de validation normale http://justaddwater.dk/wp-content/uploads/2006/08/screenshot-localization-simplified-pirate-talk.png J'ai reçu un message d'erreur de validation comme celui http: //farm4.static. flickr.com/3224/2848299089_f441133149.jpg –

1

On dirait que vous appelez enregistrez! (ou créer!) au lieu de sauvegarder (ou créer). Le premier déclenchera une exception comme vous l'avez obtenu, le dernier retournera false avec des erreurs de validation sur l'objet.

+0

@wall = @ user.walls.create! (params [: wall]) J'utilise ce que je peux faire? –

+0

Utilisez create au lieu de create! –

+0

La validation fonctionne mais maintenant, elle ne donne aucun message d'erreur, il suffit d'actualiser la page (avec create). –

Questions connexes