Le validates_presence_of ne montre pas de message d'erreur


#1

Salut,

j’ai cree un modele avec validation de presence de champs comme suit:

Model:
class Contact < ActiveRecord::Base
validates_presence_of :name, :email, :body
validates_length_of :body, :maximum =>2000
end

-----Controller
class ContactController < ApplicationController
def new
@contact = Contact.new
end
def create
@contact = Contact.new(params[:contact])
@contact.save
end
end

------Viewers

New view

<%= error_messages_for :contact %>

<% form_for @contact, :url => { :action => ‘create’ }, :html => {
:method => :post } do |f| %>

Please send your message:

Your N.:
<%= f.text_field :name, :size => 25 %>

Your email:
<%= f.text_field :email, :size => 25 %>

Message:
<%= f.text_area :body, :rows => 10, :cols => 30 %>

<%= submit_tag 'Submit' %>

<% end %>

Create view

Thank you for your interest in my site

Quand les champs son renseignes et je clique sur submit, ca ecrit dans
la base, mais quand les champs sont vides et je clique sur le bouton
submit, ca n’affiche pas de message d’erreur.

Pourquoi?


#2

Peut-être parce que “create” ne pense pas à renvoyer vers la vue “new”
quand
le “save” échoue…

Le 14 octobre 2008 03:31, Pepe S. removed_email_address@domain.invalid a
écrit
:

Your N.:
<%= f.text_field :name, :size => 25 Create view


Michel B.


#3

Michel,

Peux-tu me donenr una example avec du code Ruby ou l’adresse d’une page
ou je puisse avoir pluis de renseignements

je travaille avec 2 ou 3 livres et ils n’expliquent pas comment je dois
faire ce type de controle
merci

Belleville wrote:

Peut-être parce que “create” ne pense pas à renvoyer vers la vue “new”
quand
le “save” échoue…

Le 14 octobre 2008 03:31, Pepe S. removed_email_address@domain.invalid a
écrit
:

Your N.:
<%= f.text_field :name, :size => 25 Create view


Michel B.


#4

Disons :

def create
@truc = Truc.new(params[:truc])

on essaye de sauver, et si ça ne marche pas on affiche la vue “new”

cette fois avec les données de l’objet @truc que l’on vient de

tenter de
créer
render :action => :new if (! @truc.save)
end

C’est un exemple super basique, pas une ligne de conduite. Tu pourrais
trouver des exemples plus complets en utilisant le scaffolding.


Michel B.


#5

Le 14 octobre 2008 14:33, Pepe S. a écrit :

Peux-tu me donenr una example avec du code Ruby ou l’adresse d’une page
ou je puisse avoir pluis de renseignements

je travaille avec 2 ou 3 livres et ils n’expliquent pas comment je dois
faire ce type de controle

Ah, et par curiosité, quels sont ces livres ?

– Jean-François.


Les 50 ans du Lisp : http://www.lisp50.org
http://twitter.com/underflow_


#6

Jean-François,

J’utilise ces trois livres :
• Simply Rails 2.2

• Agile Web D. with Rails

• Practical Rails Social Networking Sites


#7

Salut,

Le 14 oct. 08 à 15:37, Michel B. a écrit :

render :action => :new if (! @truc.save)

Roooh :slight_smile:

render :action => :new unless @truc.save

Guillaume “Zifro” DESRAT
Président de l’association Ruby France
http://www.rubyfrance.org/


#8

De nouveau, j’ai pondu ça sans vraiment réfléchir après deux mois de
retours
au PHP dans le cadre de ma profession ; un peu d’indulgence que Diable !

Et que celui qui a répondu le premier à sa question me jette la première
pierre, comme ça je suis tranquille à moins d’une maladresse de ma
part…

:op


Michel B.


#9

Le 15 oct. 08 à 23:07, Michel B. a écrit :

De nouveau, j’ai pondu ça sans vraiment réfléchir après deux mois
de retours au PHP dans le cadre de ma profession ; un peu
d’indulgence que Diable !

C’est pas plus mal finalement : tu retrouves la joie de Ruby
régulièrement :slight_smile:

Et que celui qui a répondu le premier à sa question me jette la
première pierre, comme ça je suis tranquille à moins d’une
maladresse de ma part…
:op

Et même :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue:

Bonne nuit, j’ai besoin de sommeil… ZzZZz…

Guillaume “Zifro” DESRAT
Président de l’association Ruby France
http://www.rubyfrance.org/


#10

Le 15 octobre 2008 02:59, Pepe S. a écrit :

Jean-François,

J’utilise ces trois livres :
• Simply Rails 2.2

• Agile Web D. with Rails

• Practical Rails Social Networking Sites

Tu me sembles bien armé pour acquérir la maîtrise de Ruby on
Rails. Je ne connais pas le premier livre. Si je puis me permettre,
il serait quand même mieux d’étudier qu’un de ces livres
en suivant la progression proposée par l’auteur et éventuellement
si une explication n’est pas clair, aller piocher dans les 2 autres
bouquins des explications plus claires sur un point précis,
plutôt que de lire les 3 livres en parallèle.

-- Jean-François.


Les 50 ans du Lisp : http://www.lisp50.org
http://twitter.com/underflow_