Recommend Me


Mercredi 18 juin 2008

periodically_call_remote

Classé dans : Camping, Projets, Ruby, bivouac — greg @ 23:50

Voici un petit exemple d’utilisation de periodically_call_remote avec Bivouac.

Commencez par créer un nouveau projet :

bivouac test

Ajouter ensuite un controller et une action associée :

cd test
ruby script/generate controller periodically call

Modifiez la vue app/views/periodically/call.rb de la façon à obtenir le code suivant :

module Test::Views
  def periodically_call
    h1 "periodically_call_remote"

    div( :id => "refresh-me", :style => "background-color: #eee;") do; end

    periodically_call_remote( :update => ‘refresh-me’, :url => R(PeriodicallyCall), :frequency => 2 )
  end
end

Dans cette vue, nous demandons, via le helper periodically_call_remote, à ce que le div d’id refresh-me (:update => ‘refresh-me’) soit mis à jour toutes les 2 secondes (:frequency => 2) par le contenu renvoyé par PeriodicallyCall (:url => R(PeriodicallyCall))

Ce qu’il faut savoir, c’est que periodically_call_remote utilise un appel de type POST. Donc dans app/controllers/periodically.rb nous gérerons via le GET l’accès à la vue app/views/periodically/call.rb et via le POST nous renverrons le contenu à mettre à jour :

module Test::Controllers
  class PeriodicallyCall < R ‘/periodically/call’
    def get
      render :periodically_call
    end
    def post
      Time.now
    end
  end
end

Vous remarquerez qu’il n’existe pas de render :text => “Bla bla bla” avec Bivouac. Il suffit de renvoyer directement le texte.

Avant de terminer, il ne faut pas oublier de charger les librairies JavaScript (prototype et script.aculo.us). Pour cela, ajoutez la ligne javascript_include_tag :defaults dans le head du layout app/views/layouts/default_layout.rb.

Voila, démarrez le server et connectez-vous sur http://localhost:3301/periodically/call, vous devriez voir une page avec la date, rafraîchie toute les 2 secondes…

• • •

Pas de commentaire »

Pas encore de commentaire.

RSS des commentairesTrackBack URI

Laisser un commentaire

You must be logged in to post a comment.

Powered by: WordPress • Template adapted from the Simple Green' Wench theme - RSS