J'essaie d'utiliser jQuery, et tout a été génial, jusqu'à maintenant, quand j'essaie de rendre partiel et de l'ajouter à une div. Voici comment je l'ai mis en place:
J'ai une action qui répond à js:
def index @objects = Object.find(:all) respond_to do |format| format.js end end
Et un modèle appelé index.js.erb avec un javascript dans celui-ci:
alert("hello world");
Firebug renvoie une réponse "texte / javascript" contenant:
alert("hello world");
Mais la fenêtre d'alerte n'apparaît pas, et aucun autre JavaScript ne fonctionne. J'ai vérifié http://railscasts.com/episodes/136-jquery Et je suis plus ou moins suivi. J'ai essayé plusieurs autres choses, comme utiliser .rjs au lieu de .erb et de le mettre dans mon modèle:
page.alert("hello world");
Mais j'ai le même résultat exact et le navigateur n'exécute jamais le JS.
Quelqu'un sait pourquoi le JavaScript n'est pas exécuté?
Je lance Rails 2.3.4.
Vous devez l'appeler à partir de votre vue ou il ne sera jamais exécuté.
Un exemple de contrôleur:
def index @objects = Object.find(:all) respond_to do |format| format.js{ render :text => "alert('hello')" } end end
Et un index.html.erb avec:
<script type="text/javascript"> $(function(){ $.ajax({ url: '/controller', type: 'get', dataType:'script' }); }); </script>
Remplacer '/ controller' par l'URL actuelle qui exécute l'action de l'index de ce contrôleur, par défaut pour PostsController, il sera '/ posts' et ainsi de suite …
Si vous aimez les rjs, vous supprimez le {} et vous l'utilisez dans le contrôleur et créez un index.js.erb ou index.rjs avec:
page.alert("hello world")
ou:
page << "hello world"