jQuery Rails嵌套资源错误?

时间:2017-10-02 21:13:46

标签: javascript jquery ruby-on-rails jquery-rails

我有一个Rails应用程序,使用一个包含多个嵌套资源的表单。关于它的奇怪怪癖是我使用多个单select个输入作为一个多select输入(即在它们之间使用相同的name)。我也是通过JavaScript提交的(即remote: true)。 select html如下:

<select name="order_item[order_item_options_attributes][1][value2][]">(...)</select>

当我在create使用此表单时,此工作正常。但是,当我尝试update时,它会恢复为POST请求,而不是PATCH。正确生成_method隐藏字段:

<input name="_method" value="patch" type="hidden">

这是奇怪的地方!如果我将name输入的select更改为order_item[order_item_options_attributes][1][value2s][](请注意s之后的value2),它会有效!

因此,如果所有嵌套数组值都是&#34;复数&#34;,jQuery似乎只允许PATCH请求。这是按预期工作还是只是一个错误?或者我错过了什么?我正在使用Rails 4.2.8和jQuery-rails 4.3.1。

编辑:

以下是相关路线。它只是您标准的嵌套路线:

resources :orders do
    resources :order_items
end

输出:

order_order_items_path      GET     /orders/:order_id/order_items(.:format)     order_items#index
                            POST    /orders/:order_id/order_items(.:format)     order_items#create
new_order_order_item_path   GET     /orders/:order_id/order_items/new(.:format)     order_items#new
edit_order_order_item_path  GET     /orders/:order_id/order_items/:id/edit(.:format)    order_items#edit
order_order_item_path       GET     /orders/:order_id/order_items/:id(.:format)     order_items#show
                            PATCH   /orders/:order_id/order_items/:id(.:format)     order_items#update
                            PUT     /orders/:order_id/order_items/:id(.:format)     order_items#update
                            DELETE  /orders/:order_id/order_items/:id(.:format)     order_items#destroy

编辑2(澄清):

这似乎是jQuery问题,而不是Rails问题。我之所以这么说是因为我可以直接在浏览器中编辑name属性(即不是刷新或代码更改),它会立即生效。所以这似乎是客户端而不是服务器端。

0 个答案:

没有答案