2009-03-12 7 views
2

J'ai un peu de magie javascript pour créer et masquer des divs à la volée lorsque l'utilisateur interagit avec la page. Chaque div contient une vue d'une partie de mon application et chaque instance de modèle dans ces vues a un propriétaire. Si la personne qui consulte la page n'est PAS le propriétaire, elle ne voit que les données. Toutefois, si l'utilisateur est le propriétaire des données, il obtient une vue d'édition.La soumission d'une forme de rails peut-elle éviter de naviguer à l'écart de la vue actuelle?

Il est peut-être possible de cacher l'état de tous les divs et de rendre la page exactement comme elle l'était lorsque l'utilisateur soumet des changements, mais je préfère avoir un moyen rapide et facile d'avoir transaction être quelque chose dans le sens de: l'utilisateur touche le bouton de soumission, le serveur traite les changements et renvoie la confirmation, un changement mineur à l'écran clignote la notification de l'achèvement de la transaction.

Tout le monde a un pointeur vers un exemple de travail? Le seuil pour la mise en œuvre sera de savoir s'il est plus facile de faire ce que je demande ici ou de mordre la balle et de porter l'état div à travers la transaction.

Répondre

0

On dirait que tout ce dont vous avez besoin est de la magie Ajax. Jetez un oeil à remote_form_for ou l'un des autres Prototype Helpers.

3

Comme sur Freund, remote_form_for est le chemin à parcourir. Ajoutez à cela une touche de RJS et vous êtes prêt à partir:

# Form 
- remote_form_for(@obj, :url => obj_path(@obj)) do |f| 

    = f.text_field :some_attribute 
    = f.submit "Submit" 


# Controller action 

def edit 
    respond_to do |wants| 
    wants.html { } 
    wants.js { 
     render :update do |page| 
     page.replace_html :some_div, "Some content" 
     end 
    } 
    end 
end 
Questions connexes