我有一个Rails 3.2应用程序。我正在尝试更新表单中的布尔字段,但它没有更新。
我的表格如下:
.pocketNSleeve
%span Want Half Sleeves:
= f.check_box :half_sleeve, :id => "halfSleeve"
%span Want Pocket
= f.check_box :pocket, :id => "wantPocket"
我正在通过javascript为这些复选框分配值。
我的创建操作如下:
def create
@cart = current_cart
@line_item = @cart.line_items.build(params[:line_item])
@product = @line_item.product
respond_to do |format|
if @line_item.save
format.js
else
@line_item_id = @line_item.check_bag
@product = Product.find(params[:line_item][:product_id])
format.js
end
end
end
当我使用'pry'gem调试它时,我在params中正确地获得了所需的参数。
在@ line_item.save之后我尝试使用.update方法进行手动更新,如下所示:
def create
@cart = current_cart
@line_item = @cart.line_items.build(params[:line_item])
@product = @line_item.product
respond_to do |format|
if @line_item.save
@line_item.update_column('pocket', params[:line_item][:pocket])
@line_item.update_column('half_sleeve', params[:line_item][:half_sleeve])
format.js
else
@line_item_id = @line_item.check_bag
@product = Product.find(params[:line_item][:product_id])
format.js
end
end
end
以下是参数:
{"utf8"=>"✓",
"authenticity_token"=>"3FGs6NIkDMjaqerG9RNyKZTWNRq09Avmv3TW2RCrzac=",
"line_item"=>
{"product_size_id"=>"3",
"quantity"=>"01",
"half_sleeve"=>"true",
"pocket"=>"false",
"cart_id"=>"103811",
"product_id"=>"50",
"product_code"=>"19408ARD",
"ordered_price"=>"1600.0"},
"commit"=>"ADD TO CART",
"action"=>"create",
"controller"=>"line_items"}
我的模型中有一些回调,但那些没有做任何有害的waork。