2010-04-14 25 views
0

我試圖在另一個表格中嵌套一個表格,使用submit_to_remote但它做了PUT而不是POST。任何人都可以解釋這裏有什麼問題?Rails的submit_to_remote不能POST POST

的路線是REST風格:

map.resources :thing 
map.resources :item 

的看法是這樣的:

<% form_for(@thing) do |f| %> 
    <% fields_for(Item.new) do |i| %> 
    <%= i.text_field :name %> 
    <%= submit_to_remote 'create', 'Create', :url => items_path, :method => "post" %> 
    <% end %> 
    <%= f.text_field :title %> 
    <%= f.submit 'Update' %> 
<% end %> 

爲了避開我已經加入其他方法到寧靜的路線做一個創造的問題一個PUT,但它很醜,我想知道問題是什麼。

的submit_to_remote出來爲:

<input name="create" onclick="new Ajax.Request('/items', {asynchronous:true, evalScripts:true, method:'post', parameters:Form.serialize(this.form) + '&amp;authenticity_token=' + encodeURIComponent('blah')});" type="button" value="Create"> 

感謝

+0

只是好奇你真的想用提交遠程表單來做什麼。 – Salil 2010-04-14 10:53:38

+0

這是一個編輯窗體(物品),可以在主窗體中添加/編輯子項目(項目)。表單的流程很難分離表單,因此提交ajax。 – 2010-04-14 11:19:24

回答

0

如何使用link_to_remote而不是和風格的鏈接像一個「按鈕」,或者只是把它作爲一個鏈接就可以了是誠實。這樣你可以完全控制XmlRequest。目前我認爲這個方法是由JS提交的實際表單決定的,而不是你在助手調用中設置的方法。

+0

感謝您的迴應。一個鏈接可以做到這一點。我仍然好奇,爲什麼XmlRequest無法在這種情況下提交POST。我認爲你是對的,它使用表單中的方法。也許這是一個原型的東西。我還沒有嘗試過使用jQuery。 – 2010-04-14 12:51:10

+0

沒問題,嘗試改變你的表單是一個職位,而不是一個put(工作在一個新的對象創建),看看是否這樣做。至少你會知道它設置方法的主要形式。 – tsdbrown 2010-04-14 13:24:15