Ouverture de session

Commentaires récents

Syndication
Flux XML

Chapitre 30 : probleme de validation dans "Création / modification d'un bien"

Chapitre 30 : probleme de validation dans "Création / modification d'un bien"
Posté par dizzux le Dimanche, 23 Septembre, 2007 - 7:54pm. Pratique de Ruby on Rails - O'Reilly

PS:comment mettre mon code dans le POST! MERCI!

Bonjour à tous,

Petite présentation de moi même, je suis débutant en programmation, Pratique de ruby on rails est mon première livre.
je suis sous Ubuntu feisty.

J'ai donc un problème dans l'exercice sur l'agence immobilière:

j'ai le fichier afficher_bien.rhtml:

Création / Modification d'un bien

"valider_bien" %>

Rue:(*)

Ville:(*)

Code Postal:(*)

Superficie (m2):  

Prix(€):(*)

Proprietaire:  

Etat :(*) "Choisissez ..." %>

(*) = obligatoire
[/quote]

Dans le controller, j'ai la fonction

....

def valider_bien
# Creation / Modification d'un bien
id = params[:id]
@b = ""
if id.nil?
#creer le bien
@b = Bien.create params[:b]
else
#modifier le bien
@b = Bien.update id, params[:b]
end

if @b.errors.count == 0
# saisie valide
redirect_to :action=>"index"
else
# saisie non valide
flash[:b] = @b
redirect_to :action=>"afficher_bien"
end
end
....

Quand j'appuie sur valider rien ne se passe, j'ai donc une saisie non valide.

je sais pas comment faire pour que mon @b.errors soit à 0

Merci d'avance

@+



[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | sujet précédent | envoyer par email ]

Options d'affichage des commentaires
Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder" pour activer vos changements.

Sujet: 
vous etes bien severe !
Auteur: 
ducasse
Date: 
Mar, 25/09/2007 - 16:42

Je vous trouve tous bien severe avec le livre d'oreilly.

Personnellement je le trouve bien plus accessible que tous les autres, car dans le livre officiel, on commence par faire une appli pendant 300 pages alors qu'il n'y a meme pas d'explication sur le langage Ruby. Personnellement, j'etais deja perdu au bout de 10 pages, alors je vous parle pas de la 300eme !

Ensuite on continue par les modeles, sans jamais pouvoir tester dans un navigateur ce qu'il se passe, et pour cause, les controleurs ne sont pas introduits.

Alors c'est vrai qu'on pourra dire que le livre ne correspond a rails 1.2, mais franchement c'est cherche des poils sur les oeufs car j'ai quand meme fait un site professionnel complet sans avoir besoin des nouveautes de la version 1.2. Et quand vous dites que l'exemple de l'agence immobiliere ne respecte pas les conventions de rails (CRUD), vous y allez un peu fort surtout quand on voit les noms des methodes dans le controlleur. (creer_bien, modifier_bien, supprimer_bien ...)

Egalement, je ne sais pas ou vous avez vu que la science deconseille de passer un objet du modele dans un flash, mais apparemment seulement des chaines de caracteres. Si vous restreignez les flash et les sessions a ce genre de choses, et bien soit ! mais c'est vous seul qui l'avez decide, et certainement pas ruby ni rails.

Pour finir je me permettrais un petit conseil, le livre pratique de css et javascript (du meme auteur et toujours chez oreilly, desole) me parait tres approprie pour un debutant en javascript /ajax qui veut des exemples avec rails, car la moitie du bouquin ne traite que de ca ...


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Il faut savoir que Agile Dev
Auteur: 
dam5s
Date: 
Mar, 25/09/2007 - 19:29

Il faut savoir que "Agile Dev with Rails" consacre une annexe complete a l'introduction a Ruby.

Bien evidemment ca ne permet pas de maitriser tout du langage (et ce n'est pas le but). Mais cela permet de commencer par l'apprentissage de Ruby avt de se lancer ds la creation de l'application depot.

Celle-ci couvre les bases du developpement rails et suppose que vous savez vous debrouiller avec Ruby (donc au moins avoir lu l'annexe ou parcouru quelques tutoriaux sur le net)

Cela dit chacun prefere son type de bouquin :)

Damien


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Salut. Poste le code complet
Auteur: 
slainer68
Date: 
Dim, 23/09/2007 - 20:55

Salut.

Poste le code complet de la vue et de ton controlleur dans Pastie, là c'est vraiment pas compréhensible : http://pastie.caboo.se

@+

Nicolas Blanco (aka slainer68)


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
merci. code sur pastie
Auteur: 
dizzux
Date: 
Dim, 23/09/2007 - 23:31

re,

donc voici:

le controller http://pastie.caboo.se/99975.txt
la vue http://pastie.caboo.se/99977.txt

merci

@+


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Salut, je pense que ton code
Auteur: 
slainer68
Date: 
Lun, 24/09/2007 - 09:39

Salut, je pense que ton code pourrait être plus propre et mieux architecturé ;).

Tu peux expliquer en texte ce qu'elle est censée faire ton appli ? En gros il y a des biens, des locations, des collaborateurs...

Pour mieux architecturer ton appli, commence par créer un contrôleur par modèle en gros. Dans chaque contrôleur, tu mets ce qu'on appelle les méthodes CRUD : index (list), new, create, edit, update, delete. ça parait bateau mais ça permet d'avoir un minimum d'organisation.
Tu peux t'inspirer d'un scaffold.
Une fois que t'as mieux organisé les choses tu peux peaufiner l'appli.

Nicolas Blanco (aka slainer68)


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Fonctionnalité de l'application.
Auteur: 
dizzux
Date: 
Lun, 24/09/2007 - 10:02

L'appli doit gerer un agence immobiliere.

je peux donc creer / supprimer / modifier des biens
je peux aussi creer / supprimer / modifier des collaborateurs (acheteur ou loueur)

je ne peux pas vous montrer ou modifier mon code, je ne suis pas chez moi.

Mais je suis sur que mon probleme viens de le la fonction:

def valider_bien
...
sur la ligne:
@b.errors.count == 0
...

je doit avoir aucune erreur dans @b pour afficher l'index.

mais je suis pas a 0 donc ca me renvoi tourjour à la meme pages:
def afficher_bien

Pour l'architecture du code, je n'ai fait que recopier le livre.
je suis pas assez calé pour architecturer le code autrement, j'essaye deja de comprendre les bases du languages et meme la logique de programmation.

Merci de votre aide

@+


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
c'est
Auteur: 
dam5s
Date: 
Lun, 24/09/2007 - 09:30

c'est plutot:
http://pastie.caboo.se/99975
http://pastie.caboo.se/99977

:)

Damien


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Voici tous le code de l'application
Auteur: 
dizzux
Date: 
Lun, 24/09/2007 - 19:14

re,

donc voici tous le code de l'application:

Models

http://pastie.caboo.se/100224 bien.rb
http://pastie.caboo.se/100226 client.rb
http://pastie.caboo.se/100228 collaborateur.rb
http://pastie.caboo.se/100229 locationvente.rb

Vue

http://pastie.caboo.se/100232 afficher_bien.rhtml
http://pastie.caboo.se/100234 afficher_collaborateur.rhtml
http://pastie.caboo.se/100235 index.rhtml
http://pastie.caboo.se/100236 lister_biens.rhtml
http://pastie.caboo.se/100237 lister_collaborateurs.rhtml
http://pastie.caboo.se/100238 vente_location.rhtml

controlleur

http://pastie.caboo.se/99975 immo_controller.rb

Merci

@+


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
Salut, encore une fois c'est
Auteur: 
slainer68
Date: 
Lun, 24/09/2007 - 22:37

Salut,
encore une fois c'est pas une critique mais je trouve le code de ton contrôleur pas trop conventionnel, même si t'as recopié une partie d'un bouquin.

Je sais pas ce qu'on pense d'autres personnes peut être plus expérimentées que moi, mais moi j'ai pas trop l'habitude de stocker mes modèles dans l'objet flash et de faire des redirections juste après.
L'objet flash est en fait une abstraction qui utilise les sessions et il est de convention de ne pas stocker de modèles dans l'objet session...
Je garde l'objet flash pour stocker des messages c'est tout.

Comme j'ai dit plus haut, je te conseille de réécrire totalement ton contrôleur en suivant une logique "plus proche de CRUD" : une méthode new, une méthode update, une méthode create, etc.
C'est cette architecture que les développeurs Rails utilisent par convention et celle qui se rapproche des conventions REST de Rails. En les adoptant de suite, tu te faciliteras les développements futurs.

Nicolas Blanco (aka slainer68)


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Sujet: 
J'ai pris note
Auteur: 
dizzux
Date: 
Lun, 24/09/2007 - 22:59

Salut Slainer68,

j'ai pris note de tes remarques, je ferai mes futurs applications dans ce sens, je n'ai aucune expérience et tout conseille sera bon pour ma connaissance.

Je trouve ça dommage d'avoir acheté un livre 40€ pour apprendre un langage qui se base sur des conventions ( et non sur la configuration) et que ce livre ne respecte même pas ces bases.

Encore merci de tes conseils, je vais ecrire cette appli avec la methode que tu m'as conseillé, je te donnerai des nouvelles.

Salut


[ Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | envoyer par email ]

Nouveaux liens

Sondage
Lorsque je développe avec Ruby on Rails c'est principalement sous:
Linux
36%
Mac OS X
30%
Windows
32%
(Free|Open|Net) BSD
1%
Autre...
1%
Nombre de votes: 368

Qui est en ligne
Il y a actuellement 1 utilisateur et 45 invités en ligne.

railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails
[ Hébergement et ressources techniques gracieusement fournis par la SSLL Nuxos Group ]