2010-01-08 7 views
5

Kann mir jemand sagen, warum dies die POST-Methode statt meiner PUT-Methode, die ich in der Ajax-Anfrage angeben, ausgeführt wird?form_remote_tag wird nicht ausgeführt: method =>: put

<% form_remote_tag(
    :url => contact_url(detail), 
    :method => :put, 
    :complete => "Element.toggle($('#{form_id}))", 
    :success => visual_effect(:shake, "contact-#{detail.id}"), 
    :update => "contact-#{detail.id}", 
    :html => {:id => form_id, :style => "display:none"}) do %> 

Erzeugte Ausgabe:

<form action="/contacts/1" id="tag-form-for-1" method="post" onsubmit="new Ajax.Updater('contact-1', '/contacts/1', {asynchronous:true, evalScripts:true, method:'put', onComplete:function(request){Element.toggle($('tag-form-for-1))}, onSuccess:function(request){new Effect.Shake(&quot;contact-1&quot;,{});}, parameters:Form.serialize(this)}); return false;" style="display:none"> 


<div style="margin:0;padding:0;display:inline"> 
<input name="authenticity_token" type="hidden" value="7807qAkHN3c1yyZlLoy9Z5pUByviR5az9vtuHHBbVv4=" /> 
</div> 

<input id="tag_list" name="tag_list" size="40" type="text" value="Home Pittsburgh Ginger" /> 
<input id="form_id" name="form_id" type="hidden" value="tag-form-for-1" /> 

</form> 

Antwort

4

Nach viel herum täuschen ich das herausgefunden. Es scheint, ich muss setzen Sie die: Methode =>: Anruf in den: HTML-Hash. Nicht sicher warum. Wenn jemand antworten könnte, wäre es hilfreich.

+0

Sie haben mir gerade geholfen. Tut mir leid, niemand hat dir geholfen, als du es gebraucht hast: / – Abel

1

Wenn "put", "delete" oder ein anderes Verb verwendet wird, wird eine versteckte Eingabe mit dem Namen _method hinzugefügt, um das Verb über den Beitrag zu simulieren.

Verwandte Themen