Javascript jQuery Rails嵌套资源Bug?

Javascript jQuery Rails嵌套资源Bug?,javascript,jquery,ruby-on-rails,jquery-rails,Javascript,Jquery,Ruby On Rails,Jquery Rails,我有一个Rails应用程序,它使用一个表单,表单中有几个嵌套的资源。奇怪的是,我使用多个select输入作为一个多select输入(即在它们之间使用相同的name)。我还通过JavaScript(即remote:true)提交了此文件。selecthtml如下: <select name="order_item[order_item_options_attributes][1][value2][]">(...)</select> 这就是奇怪的地方!如果我将我的的名称更改

我有一个Rails应用程序,它使用一个表单,表单中有几个嵌套的资源。奇怪的是,我使用多个
select
输入作为一个多
select
输入(即在它们之间使用相同的
name
)。我还通过JavaScript(即
remote:true
)提交了此文件。
select
html如下:

<select name="order_item[order_item_options_attributes][1][value2][]">(...)</select>
这就是奇怪的地方!如果我将我的
名称
更改为
订单项目[order\u item\u options\u attributes][1][value2s][
(注意
值2
之后的
s
),它会工作

因此,如果所有嵌套数组值都是“复数”的,jQuery似乎只允许
补丁
请求。这是正常工作还是只是一个bug?还是我遗漏了什么?我使用的是
Rails
4.2.8和
jqueryrails
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
属性(即,不刷新或更改代码),它将立即工作。因此,这似乎是客户端而不是服务器端的东西。

没有什么贡献,但对此感兴趣。然而,我高度怀疑多元化与此有关。同样值得注意的是,这可能是jquery rails的事情,而不是jquery的事情?您是否在路由中将操作设置为
补丁
请求?可能是有了额外的
s
,就有了添加值的空间,而不是没有
s
,您已经发布了值。如果是这种情况,那么rails可能只是将
s
作为另一个POST请求处理。重新陈述我最初的问题,你是否有一个更新功能,独立于此,在你的路由中设置为
补丁
请求?@CarlMarkham,这就是我的想法@AaronEveleth是的,我确实有一个
更新
路由设置为
补丁
请求。当我有
s
时,它会正确地转到该路线。只有当我删除
s
时,它才会恢复为
POST
请求(并且我没有更新
POST
路径),因此它甚至不会进入我的rails代码。这就是为什么我认为这是jQuery(-Rails)的问题。@RyanK可能值得显示表单中使用的路由路径以及路由文件中的相关路由。为了澄清起见,为了未来的观众,没有什么贡献,但对此感兴趣。然而,我高度怀疑多元化与此有关。同样值得注意的是,这可能是jquery rails的事情,而不是jquery的事情?您是否在路由中将操作设置为
补丁
请求?可能是有了额外的
s
,就有了添加值的空间,而不是没有
s
,您已经发布了值。如果是这种情况,那么rails可能只是将
s
作为另一个POST请求处理。重新陈述我最初的问题,你是否有一个更新功能,独立于此,在你的路由中设置为
补丁
请求?@CarlMarkham,这就是我的想法@AaronEveleth是的,我确实有一个
更新
路由设置为
补丁
请求。当我有
s
时,它会正确地转到该路线。只有当我删除
s
时,它才会恢复为
POST
请求(并且我没有更新
POST
路径),因此它甚至不会进入我的rails代码。这就是为什么我认为这是jQuery(-Rails)的问题。@RyanK可能值得显示表单中使用的路由路径以及路由文件中的相关路由。只是为了澄清和未来的观众
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