2011-01-20 1 views
0

J'ai suivi les instructions de l'article "AJAX file uploads in Rails using attachment_fu and responds_to_parent". Dans mon cas, j'utilise Ruby on Rails 3 et Paperclip.Problème d'utilisation de 'responds_to_parent' avec un iframe et AJAX pour télécharger un fichier

Ce que je fait est la suivante:


J'ai installé le plugin 'respons_to_parent' exécutant cette commande dans le Terminal:

rails plugin install git://github.com/itkin/respond_to_parent.git 

Après l'installation, je redémarre Apache.


À mon avis je:

<%= form_for(@user, :html => { :multipart => true, :target => 'upload_frame' }) do |f| %> 
    <%= f.file_field :avatar %> 
    <%= f.submit "Submit" %> 
<% end %> 

<div id="test">Here is a test</div> 
<div id="stuff">Here is some stuff</div> 
<iframe id='upload_frame' name="upload_frame" style="width:1px;height:1px;border:0px" ></iframe> 

Dans mon contrôleur j'ai

def action 
    respond_to do |format| 
     ... 
     format.js { 
     responds_to_parent do 
      render :update do |page| 
      page.replace_html :test, "This is the resulting test" 
      page << "alert($('stuff').innerHTML)" 
      end 
     end 
     end 
    end 
    end 

Essayer de soumettre le formulaire, tout sur les travaux de téléchargement de fichiers (Paperclip gérer les fichiers correclty, ...) et dans le fichier journal il n'y a pas e russes.

La seule chose qui ne fonctionne pas est la partie AJAX. Dans l'exemple

page.replace_html :test, "This is the resulting test" 
page << "alert($('stuff').innerHTML)" 

ne mettent pas à jour la page (BTW: lorsque ceux-ci devraient avoir un effet dans la « vue principale » ou dans la « vue iframe »?). Cela ne fonctionne pas si j'essaie de supprimer l'instruction 'respons_to_parent' ou si je les mets dans le fichier 'action.js.rjs'.

Où est-ce que je me trompe?

Répondre

0

SOLVED

J'avais oublié d'ajouter :url => users_account_path +. "js". Ainsi, la vue devient:

<%= form_for(@user, :url => users_account_path +. "js", :html => { :multipart => true, :target => 'upload_frame' }) do |f| %> 
Questions connexes