Bolo_M
October 2, 2006, 3:08pm
#1
Bonjour
j’essaye de suivre ce tuto sur les RJS
http://rewrite.rickbradley.com/articles/2006/02/06/rjs-templates
J’ai supprimé la vue add.rhtml et ajouter un template RJS. Cependant
rien ne
se passe quand je crée une nouvelle catégorie
J’ai bien ajouté dans mon layout javascript_include_tag :defaults
application
<%= javascript_include_tag :defaults %>
<%= yield %>
Merci
Bolo_M
October 2, 2006, 3:12pm
#2
Pense à utiliser FireBug une extension Firefox pour suivre tes
requêtes ajax (et tout ton JS…)
Il faut activer l’option (dans le menu options…) “show
XMLHttpRequests”.
Ca t’aidera à voir d’où vient ton problème. S’il n’y a pas de
XMLHttpRequests quand tu cliques tu as mal tapé quelque chose
NP
Le 2 oct. 06 à 15:05, Bolo M. a écrit :
Bolo_M
October 2, 2006, 3:34pm
#3
Alors j’ai installé Firefox, l’extension et activer l’option. Quand je
clique sur le bouton add dans l’onglet Console j’ai message qui apparait
POST http://localhost:3002/home/add
category%5Bname%5D=zozo&commit=add&_=
ma vue index
<%= form_remote_tag :url => { :action => ‘add’} %>
Category <%= text_field ‘category’, ‘name’ %>
<%= submit_tag ‘add’ %>
<%= end_form_tag %>
<% @categories.each do |category| -%>
<%= category.name %>
<% end -%>
Je sais pas trop comment fonctionne l’extension … Je sais pas si le
message est correcte
2006/10/2, Nicolas P. [email protected] :
Bolo_M
October 2, 2006, 3:44pm
#4
Déroule la ligne dans fireBug (avec la petite flèche) pour voir la
réponse que te donne le serveur.
NP
Le 2 oct. 06 à 15:33, Bolo M. a écrit :
Bolo_M
October 2, 2006, 4:15pm
#5
POST http://localhost:3002/home/add
onglet post
category%5Bname%5D=toto&commit=add&_=
Response
Rien
Header
Rien
l y a un lien bleu prototype.js?1159 quand je clique dessus j’ai cette
ligne
var body = this.options.postBody ? this.options.postBody :
parameters;
739 this.transport.send(this.options.method == ‘post’ ? body : null);
2006/10/2, Nicolas P. <[email protected] >:
Bolo_M
October 2, 2006, 4:21pm
#6
C’est peu clair mon amie, nous n’avons aucune idée de ce que fait ton
action add. Apparemment, elle ne fait rien…
Faut comprendre la mécanique. On donne qlq à une methode (une action
rails) et elle va nous rendre qlq chose d’autre.
Là tu donnes toto, et tu ne reçois rien. Ou toto n’est pas arrivé
jusqu’à add et tel quel je ne vois pas pourquoi ou add déconne et lÃ
encore je ne le vois pas, j’ai n’ai pas vu add.
Teste ou débug d’abord add en ne faisant pas d’ajax, c’est le plus
simple.
à +
NP
Le 2 oct. 06 à 16:12, Bolo M. a écrit :
Bolo_M
October 2, 2006, 5:17pm
#7
Bonjour Bolo,
Teste ou débug d’abord add en ne faisant pas d’ajax, c’est le plus
simple.
La méthode add fonctionne, les les catégories sont bien crées en ajax ou
sans ajax
Mon problème est que je template RJS n’est pas pris en compte
en apparté, utilises-tu les tests unitaires et les fonctionnels ? Si
oui,
dans ce cas précis tu pourrais utiliser assert_select_rjs (cf
http://blog.labnotes.org/2006/08/03/assert_select-does-rjs/ ) du plugin
assert_select (ou dans rails edge) pour comprendre ce qui se passe.
voici un exemple d’un de mes tests en RJS:
xhr :get, :get_all_results, {}, …
assert_response :success
assert_select_rjs :replace_html, ‘previous_answers’
assert_select_rjs :insert_html, :before, ‘previous_answers’
Ca ne résoudra pas forcément ton problème, mais ça t’aurait peut être
permis
de détecter ce problème au plus tôt (= quand tu écris le code), ce qui
le
rend généralement plus simple à résoudre…
Thibaut Barrère
Bolo_M
October 2, 2006, 4:35pm
#8
C’est peu clair mon amie, nous n’avons aucune idée de ce que fait ton
action add. Apparemment, elle ne fait rien…
la catégorie est bien ajoutée car lorsque je recharge la page je la
vois
Faut comprendre la mécanique. On donne qlq à une methode (une action
rails)
et elle va nous rendre qlq chose d’autre.
Là tu donnes toto, et tu ne reçois rien. Ou toto n’est pas arrivé jusqu’Ã
add et tel quel je ne vois pas pourquoi ou add déconne et là encore je ne le
vois pas, j’ai n’ai pas vu add.
Teste ou débug d’abord add en ne faisant pas d’ajax, c’est le plus
simple.
La méthode add fonctionne, les les catégories sont bien crées en ajax ou
sans ajax
Mon problème est que je template RJS n’est pas pris en compte
à +
Bolo_M
October 2, 2006, 5:29pm
#9
Salut Thibaul
en apparté, utilises-tu les tests unitaires et les fonctionnels ?
eu j’ai droit un jocker
Si oui, dans ce cas précis tu pourrais utiliser assert_select_rjs (cf
permis de détecter ce problème au plus tôt (= quand tu écris le code), ce
qui le rend généralement plus simple à résoudre…
Je vais regardé mais bon ce que je comprends ce que j’ai jamais reussi a
utiliser RJS. J’utilise pourtant bien la dernière version du edge mais a
chaque fois que je suis un tutorial le RJS n’as pas pris en compte
–
Bolo_M
October 2, 2006, 5:39pm
#10
Je suis en train de regardé comment faire le test mais j’avous ne pas
bien
comprendre comment il fonctionne. Pourrais tu m’expliquer
Sinon je met en dessous le code de la vue index
application
Category
2006/10/2, Bolo M. [email protected] :
Bolo_M
October 2, 2006, 5:57pm
#11
tu as droit à un joker, avec un glaçon; ça accompagnera très bien ta
prochaine lecture : http://manuals.rubyonrails.com/read/book/5 - a guide
to testing the rails
J’ai lu également le bouquin Ruby on Rails ,mais j’avoue que c’est
tellement
obscure que j’ai passé ce chapite
par ailleurs les tests sont une excellente façon de découvrir ou
approfondir
une plateforme (ex: rails, mais c’est valable sous tout autre plateforme).
ne fais pas l’impasse dessus, ça changera ta vie et ta façon de coder,
durablement (parole).
Faut il faire les tests apres avoir codé ou avant ?
Par exemple ici je trouve que les explications sont plus simple et je
pense
que pour mon prochain model je vais commencer comme ca .
http://www.lukeredpath.co.uk/2006/8/29/developing-a-rails-model-using-bdd-and-rspec-part-1
Bolo_M
October 2, 2006, 6:05pm
#12
Faut il faire les tests apres avoir codé ou avant ?
Ca dépend des cas, et des préférences personnelles.
Par exemple ici je trouve que les explications sont plus simple et je
pense
que pour mon prochain model je vais commencer comme ca .
http://www.lukeredpath.co.uk/2006/8/29/developing-a-rails-model-using-bdd-and-rspec-part-1
RSpec est très bien mais c’est une librairie externe à Rails, dont
l’usage
n’est pas majoritaire. En tant que développeur Rails à mon sens il ne
faut
pas que tu fasses l’impasse sur le framework de test qui est déjÃ
intégré Ã
rails (les fameux tests unitaires / fonctionnels / d’intégration).
Une fois que tu maitrisera bien cette partie, tu pourras tester RSpec et
t’appuyer dessus si tu estimes que c’est mieux dans ton cas précis.
Thibaut
Bolo_M
October 3, 2006, 10:58am
#13
et tes logs ? ils te disent quoi ?
sinon en regardant le code de ta vue, je suis surpris de voir un
Ajax.Updater … je suis pas sur que ca marche bien avec du RJS ca (a mon
avis ca marche avec du rhtml tout simple le updater) … ca devrait
plutot être une Ajax.Request toute simple …
Thomas
Bolo_M
October 3, 2006, 9:48pm
#14
Allez zou la reponse a ton pb est (peut-etre) ici !
Je parie que tu fais tes tests avec M. Safari, non ?
Si oui, commente la ligne “config.action_view.debug_rjs
= true” dans le fichier config/environnements/development.rb.
N’oublie pas de relancer le serveur.
a+
Did
2006/10/2, Bolo M. [email protected] :
Bolo_M
October 3, 2006, 11:38pm
#15
J’ai regle mon problème il y avait une petit faute de frappe. Donc toute
contente de voir que mon RJS fonctionne enfin j’essaye de faire la meme
chose en Restful alors la étrangement ca ne marche pas
1 Premier cas .
J’ajoute une fonction add dans mon controller et je créer un rjs ‘add’
avec
juste cette ligne de code
page.alert ‘test’
dans ma vue j’ai me ceci
<%= link_to_remote(“test add”, :url =>{ :action => :add }) %>
ca marche
2.Deuxième Cas
je crée un rjs new avec le meme code que le premier
la j’essaye avec restful avec un formulaire
Ajouter une nouvelle catégorie
<% form_remote_for :faq_category, :url =>
faq_category_url,
:html => { :method => :post } do |f| %>
<%= error_messages_for (:faq_category) %>
Libelle <%=
f.text_field :libelle_fr %>
La catégories est visible <%=
f.check_box(:est_valable)
%>
<%= submit_tag ‘ajouter’ %>
<% end %>
<%= link_to_function(‘Annuler’,
“Element.toggle(‘add_category’)”)
%>
Dans ce cas ce ne marche plus
2006/10/3, didier lafforgue [email protected] :
Bolo_M
October 2, 2006, 5:43pm
#16
eu j’ai droit un jocker
tu as droit à un joker, avec un glaçon; ça accompagnera très bien ta
prochaine lecture : http://manuals.rubyonrails.com/read/book/5 - a
guide to
testing the rails
les tests te permettront d’arriver à un code de bien meilleure qualité,
te
feront gagner en temps, en robustesse, en compréhension précise de ce
que
fait le code que tu écris, et en gestion convenable des erreurs.
par ailleurs les tests sont une excellente façon de découvrir ou
approfondir
une plateforme (ex: rails, mais c’est valable sous tout autre
plateforme).
ne fais pas l’impasse dessus, ça changera ta vie et ta façon de coder,
durablement (parole).
nb: tu augmentes sans aucun doute les chances de tomber sur de petites
contrariétés variées en travaillant sans tests sur l’edge (qui est par
nature moins stable que la 1.1.6).
a+!
Thibaut