我有一个显示订单商品的HTML表格。在每个表行上,我有一个“需要日期”字段,该字段是独立的(不是表单)输入字段。每当用户更改日期时,我都会将此日期发布到服务器以将其保存在订单中。
我注意到当我从rails控制台使用OrderItem.update或OrderItem.update_attributes时它可以工作,但是当它从字段更改事件触发时,Rails不会触发对表的更新。
#JavaScript
$(".order-item.datepicker").change ->
needby_date = $(this).val()
order_item_url = $(this).data("order-item-url")
$.ajax
type: "POST"
url: order_item_url
data:
needby_date: needby_date
我的控制器 -
def update_needby_date
@order_item = OrderItem.find(params[:order_item_id])
@order_item.update_attribute(update_needby_date_params)
respond_to do |format|
format.js { render :nothing => true }
end
end
private
def update_needby_date_params
params.permit(:order_item_id, :needby_date)
end
正如您在日志文件中看到的那样,未触发更新 -
Started POST "/order_items/1/update_needby_date" for 127.0.0.1 at 2014-07-08 10:55:10 -0400
Processing by OrderItemsController#update_needby_date as */*
Parameters: {"needby_date"=>"07/23/2014", "order_item_id"=>"1"}
OrderItem Load (0.4ms) SELECT "order_items".* FROM "order_items" WHERE "order_items"."id" = ? LIMIT 1 [["id", "1"]]
(0.4ms) begin transaction
(0.2ms) commit transaction
Rendered text template (0.1ms)
Completed 200 OK in 16ms (Views: 3.3ms | ActiveRecord: 1.0ms)