2009-03-01 7 views
3

Je ne comprends pas comment utiliser la variable d'instance correctement avec des vues partielles, j'espère que quelqu'un ici peut m'éclairer. Par exemple:Ruby on Rails - Champ d'application des variables d'instance avec des vues partielles

class MainController < ApplicationController 

    def index 
    @item_list = Item.find_all_item 
    end 

    def detail_display 
    @current_selected = @item= Item.find(params[:id]) 
     redirect_to :action => :index 
    end 
end 

detail_display est invoquée lorsque l'utilisateur clique sur un élément dans la liste. La variable @current_selected n'est pas disponible pour la vue partielle invoquée lors de la redirection de l'index. Comment puis-je remédier à cela?

Merci

Répondre

8

Lorsque vous faites une redirection, le navigateur envoie une toute nouvelle demande, de sorte que toutes les données de la demande précédente est inaccessible. Vous ne voulez probablement pas faire de redirection ici; aucune quantité de portée ne vous aidera lorsque vous regardez des passages séparés à travers votre contrôleur. Pensez un peu à votre conception - qu'essayez-vous de faire? Si la sélection est quelque chose de collant, peut-être qu'il devrait aller dans la session. Si le changement n'est que partiel, vous devriez peut-être utiliser un appel Ajax. Peut-être que la solution est aussi simple que de rendre le modèle index au lieu de rediriger vers l'action index.