2009-07-06 9 views
0

Ich habe meinen Code funktioniert, so dass ich eine Tabelle von Unternehmen habe. Es gibt ein Stiftsymbol, auf das Sie klicken können, um die Geschäftsinformationen zu bearbeiten. Die Bearbeitungsinformationen werden teilweise in einer modalen Popup-Box angezeigt. Das einzige Problem ist, dass sobald sie die gewünschten Änderungen vornehmen und auf "Aktualisieren" klicken, werden sie auf die Seite "Anzeigen" für dieses Geschäft gesendet. Ich möchte, dass die Popup-Box geschlossen wird und die Informationen aktualisiert werden. Dies ist meine Update-Funktion in meinem Controller.Schienen, Bearbeiten der Seitenaktualisierung in einem Fenster

def update 
@business = Business.find(params[:id]) 

respond_to do |format| 
    if @business.update_attributes(params[:business]) 
    flash[:notice] = 'Business was successfully updated.' 
    format.html { redirect_to(business_url(@business)) } 
    format.js 
    else 
    format.html { render :action => "edit" } 
    format.xml { render :xml => @business.errors, :status => :unprocessable_entity } 
    end 
end 

Ende

habe ich versucht, Railscast 43 folgende, und ich erstellt eine .rjs Datei, aber ich konnte sie nicht überhaupt zu arbeiten. Mein Update brachte mich immer noch auf die Show-Seite. Jede Hilfe wäre willkommen.

EDIT: Hinzugefügt mehr Code.

<% form_for(@business) do |f| %> 
<%= f.error_messages %> 

<p> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
</p> 
... 
     <%= f.label :business_category %><br /> 
     <%= f.select :business_category_id, @business_categories_map, :selected => @business.business_category_id %> 
    </p> 
    <p> 
     <%= f.label :description %><br /> 
     <%= f.text_area :description %> 
    </p> 
    <p> 
     <%= f.submit 'Update' %> 
    </p> 
    <% end %> 

Das ist meine Form Innenseite meiner Edit-Seite, die in einem Pop-up, indem sie durch den Index aufgerufen wird:

<div id="popupEdit<%=h business.id %>" class="popupContact"> 
     <a class="popupClose<%=h business.id %>" id="popupClose">x</a> 
     <% if business.business_category_id %> 
     <% @business = business %> 
     <%= render "business/edit" %> 
     <% end %> 
    </div> 
+0

Sie können den Formularcode bitte in Ihrem Popup-Feld posten. –

+0

Wer heutzutage zu dieser Frage kommt, sollte diese Antwort wirklich sehen (http://StackOverflow.com/a/5766232/306084), bevor er hier eine nachbearbeitet. – pjmorse

Antwort

0

Es ist schwer zu sagen, ohne Ihre Form Code (hint hint zu sehen: -), aber es könnte sein, dass Sie form_for verwenden (was einen POST wie in normalen HTML-Formularen übermittelt) anstatt remote_form_for (was eine AJAX-Anfrage sendet).

0

Ich muss sagen, erhalten Sie Ihren Code, ohne Javascript zuerst zu arbeiten ... auch, verwenden Sie überhaupt RJS nicht. Verwenden Sie stattdessen unaufdringliches JavaScript.

Wie Herr Hyland sagt, müssen wir Ihren Ansichtscode auch sehen, bevor wir weiter helfen können.

Verwandte Themen