Rails 3布尔值未更新

时间:2017-03-01 06:21:01

标签: ruby-on-rails boolean

我有一个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。

0 个答案:

没有答案