【发布时间】:2014-02-18 03:21:38
【问题描述】:
如何在不将复选框包装在表单中的情况下通过 ajax 将复选框值提交(发布/放置)到 Rails 3 控制器?换句话说,我如何将复选框序列化为没有形式的数组。
对此的任何帮助将不胜感激。谢谢!
这是我正在尝试做的具体操作:
查看:
<ul>
<%= @items.each do |item|
<li>
<%= checkbox_tag_tag "item_ids[]", item.id, false,
:class => "item-checkbox" %>
<%= item.name %>
</li>
<% end %>
</ul>
控制器:
class ItemsController < ApplicationController
respond_to :html, :js, :json
.
.
.
def update_multiple_items
Item.update_all(
{ :category_id => params[:category_id] },
{ :id => params[:item_ids] }
)
end
end
Javascript (jQuery):
$("#update-link").click(function() {
var categoryId = 2;
var itemsArray = $(".item-checkbox:checked").serializeArray();
$.ajax({
type: "PUT",
url: "items/update_multiple_items",
data: {
category_id: categoryId,
items_ids: itemsArray
},
dataType: "script"
});
});
我收到带有以下信息的 Active Record 错误:
!ruby/hash:ActiveSupport::HashWithIndifferentAccessname: item_ids[]value: ''303'''
这里是请求参数:
Parameters:
{"parent_id"=>"7", "item_ids"=>{"0"=>{"name"=>"item_ids[]", "value"=>"302"}, "1"=>
{"name"=>"item_ids[]", "value"=>"303"}}}
【问题讨论】:
-
我在下面的回答对您的问题有帮助吗?
标签: jquery ruby-on-rails ruby-on-rails-3