2017-07-27 4 views
1

Das folgende Formular wird verwendet, um Ergebnisse zu generieren.Schienen Formular mit persistenten Parametern

<%= form_tag risultati_fatturati_interventos_path do %> <div class='row'> 
    <div class='small-6 medium-6 large-6 columns'> 
     Dal: <%= date_select :intervento, :dal, { order: [:day, :month, :year], default: Date.today-31, start_year: Time.now.year-1, end_year: Time.now.year, datetime_separator: "&nbsp;" }, {class: "small-3 medium-3 large-3 columns"} %> 
    </div> 
    <div class='small-6 medium-6 large-6 columns'> 
     Al: <%= date_select :intervento, :al, { order: [:day, :month, :year], default: Date.today-30, start_year: Time.now.year-1, end_year: Time.now.year, datetime_separator: "&nbsp;" }, {class: "small-3 medium-3 large-3 columns"} %> 
    </div> </div> <div class='row'> 
    <div class='small-6 medium-6 large-6 columns'> 
     <%= collection_select(:intervento, :invoicestate_id, Invoicestate.all, :id, :nome, prompt: "tutti") %> 
    </div> 
    <div class='small-6 medium-6 large-6 columns'> 
     <br /><br /> 
     <%= submit_tag "Invia" %> 
    </div> </div> <% end %> 

Die Ergebnisseite können Benutzer jeden Datensatz einzeln bearbeiten. Bei dieser Aktion gibt der Controller redirect_to :back an, sodass die Benutzeroberfläche den Benutzer in einem bekannten Status verlässt.

Die Ergebnisseite behandelt jedoch eine Abfrage ohne Parameter. Mein Verständnis ist Senden Schaltfläche füllt nicht die URL mit den Parametern, während link_to tut.

Verschiedene Formen von <%= link_to "blurb", params.merge(...) %> werden nicht durch Schienen verdaut. Wie kann die Ergebnisseite mit Parametern erzeugt werden, damit :back korrekte Ergebnisse liefern kann?

Antwort

0

mein Verständnis von Ihrer Frage oben ist, dass Sie nach dem Benutzer zur vorherigen Seite erhalten möchten

die bearbeiten tun

Sie request.referrer verwenden können die URL

def edit 
    # your command .... 
    # here you save the session url 
    session[:return_to] = request.referrer 
    end 

    def update 
    # your save command etc 
    # here you check if there is value from previous session 
    # then it will go to that url 
    if session[:return_to] 
     redirect_to session.delete(:return_to) 
    else 
     redirect_to other_path/root_path 
    end 
    end 
zu sparen
Verwandte Themen