2012-04-03 5 views
0

Ich habe ein Remote-Formular zum Aktualisieren eines meiner Objekte. Nach der Aktualisierung leitet Rails jedoch auf eine andere Seite um, im Wesentlichen so, als ob dieses Formular überhaupt nicht remote wäre. Was mache ich falsch?Redirect trotz remote_form?

Aus Sicht:

<td id='translation-<%= base_text.id.to_s %>' class='editable'> 
    <span class="translationstring"><%= @translation.content %></span> 
    <%= form_for @translation, :remote => true, :html => { :id => ('translation-form-for_' + base_text.id.to_s) } do |f| %> 
     <%= text_area(:translation, :content, :rows => 2) %><%= f.hidden_field(:base_text_id) %><%= f.hidden_field(:lang) %> 
    <% end %> 
    </td> 

Ich habe jQuery das Formular abschicken .submit() verwenden. Dann wird der Controller funktioniert:

def update 
@translation = Translation.find(params[:id]) 

respond_to do |format| 
    if @translation.update_attributes(params[:translation]) 
    format.html { redirect_to @translation, notice: 'Translation was successfully updated.' } 
    format.json { head :no_content } 
    else 
    format.html { render action: "edit" } 
    format.json { render json: @translation.errors, status: :unprocessable_entity } 
    end 
end 

Ende

Ich habe auch eine alternative Antwort auf der Server-Seite versucht, die ich online gefunden, keine Änderung:

Bitte beraten.

EDIT: das ist, was mein Server für den Anruf sagt:

Started PUT "/translations/1" for 127.0.0.1 at 2012-04-04 09:45:49 +0200 
Processing by TranslationsController#update as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"WbYiaRgermr2T4wzTPX/ftBsfOB8+ 
pHCYmhDFJMUu9I=", "translation"=>{"content"=>"Testet Schlüssel wieder.", "base_t 
ext_id"=>"1", "lang"=>"de"}, "id"=>"1"} 
    ←[1m←[36mTranslation Load (1.0ms)←[0m ←[1mSELECT `translations`.* FROM `trans 
lations` WHERE `translations`.`id` = 1 LIMIT 1←[0m 
    ←[1m←[35m (0.0ms)←[0m BEGIN 
    ←[1m←[36m (81.0ms)←[0m ←[1mUPDATE `translations` SET `content` = 'Testet Schl 
üssel wieder.', `updated_at` = '2012-04-04 07:45:49' WHERE `translations`.`id` = 
1←[0m 
    ←[1m←[35m (38.0ms)←[0m COMMIT 
Redirected to http://localhost:3000/translations/1 
Completed 302 Found in 133ms (ActiveRecord: 120.0ms) 
+0

Ich benutze die Standard-Rails 3.2 wo gibt es keine rails.js afaik. Jedoch verbinde ich application.js, das enthält // = require jquery // = require jquery_ujs // = require_tree – Sprachprofi

+0

Ich habe den Serverkram hinzugefügt, bitte sehen Sie. – Sprachprofi

Antwort

1

eine Lösung gefunden: das Bereitstellen: format =>: json auf meinem Formular-Tag. Vielleicht macht jquery_ujs nicht seinen Job, obwohl "zerstören" Links funktionieren gut ...