2011-01-06 17 views
5

मेरे ऐप की सूची दृश्य से, मैं रिकॉर्ड की एक सूची देख सकता हूं या ड्रिल डाउन कर सकता हूं और रिकॉर्ड को संपादित/अपडेट कर सकता हूं। अपडेट करने के बाद, मैं कुछ इंटरमीडिएट पेजों को छोड़कर सूची दृश्य पर सीधे वापस जाना चाहता हूं - लेकिन मैं बस link_to(:action => list) नहीं चाहता - इसमें अंकन शामिल है। मैं उस सटीक 'सूची' पृष्ठ पर वापस जाना चाहता हूं जो मैं आया था। सबसे अच्छा तरीका क्या है? पृष्ठ संख्या के साथ कहीं छिपा हुआ तर्क पास करें? क्या इसे पूरा करने का कोई शानदार तरीका है?'बैक' 2 स्तर कैसे जाएं?

उत्तर

7

मैं अस्वीकरण के साथ इसे बाहर फेंकने जा रहा हूं कि सुरक्षा विचार या मौजूदा रत्न हो सकते हैं।

अपनी संपादन कार्रवाई पर, आप पिछले पृष्ठ को एक सत्र में स्टोर कर सकते हैं। फिर अपनी अद्यतन कार्रवाई में, इसे रीडायरेक्ट करें।

class MyController < ApplicationController 

    def edit 
    session[:prev_url] = request.referer 
    end 

    def update 
    redirect_to session[:prev_url] 
    end 

end 
2

सत्र का उपयोग करने के विकल्प के रूप में, आप एक छिपे हुए फॉर्म फ़ील्ड का उपयोग करके क्रियाओं के माध्यम से रेफरर ले जा सकते हैं।

class MyController < ApplicationController 

    def edit 
    @prev_url = request.referer 
    end 

    def update 
    redirect_to params[:prev_url] 
    end 

end 

फार्म hidden_field का उपयोग कर:

f.hidden_field :prev_url, :value => @prev_url 

आप पूरे संदर्भकर्ता URL के साथ ले जाने के लिए नहीं करना चाहते हैं तो आप भी पृष्ठ पैरामीटर के साथ एक ही बजाय करते हैं और हो सकता है में यूआरएल को पैरामीटर संलग्न update कार्रवाई। मैं रेलवे के यूआरएल हेल्पर्स को मानकों को स्वीकार करने की भी अपेक्षा करता हूं।

संबंधित मुद्दे