RJS Template

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

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 :slight_smile:

NP

Le 2 oct. 06 à 15:05, Bolo M. a écrit :

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]:

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 :

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] >:

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 :

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

C’est peu clair mon amie, nous n’avons aucune idée de ce que fait ton
action add. Apparemment, elle ne fait rien…

:slight_smile: 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

à +

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

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]:

tu as droit à un joker, avec un glaçon; ça accompagnera très bien ta
prochaine lecture : Peak Obsession - a guide
to testing the rails :slight_smile:

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

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

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

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]:

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]:

eu j’ai droit un jocker

tu as droit à un joker, avec un glaçon; ça accompagnera très bien ta
prochaine lecture : Peak Obsession - a
guide to
testing the rails :slight_smile:

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