0
我試圖update_attributes
使用HTML表內check_box
表單標籤的訂單:發送「零」的選中複選框 - UJS,軌道4,5
...
<td>
<%= form_for order, url: toggle_shipped_state_path(order.id), remote: true do |f| %>
<% if order.shipped_or_delivered.nil? %> #<= items that weren't shipped
<%= f.check_box :shipped_or_delivered, class: 'toggle-shipped' %>
<% else %>
<%= f.check_box :shipped_or_delivered, class: 'toggle-shipped', checked: true %>
<% end %>
<%= f.submit 'Shipped' %>
<% end %>
</td>
...
在我看來的結尾,我加載my-sales.js
,其中有:
jQuery.fn.submitOnCheck = function() {
this.find('input[type=submit]').remove();
this.find('input[type=checkbox]').click(function() {
$(this).parent('form').submit();
$(this).closest('tr').toggleClass('success');
});
return this;
}
$('table').find('input[checked]').each(function(){
if ($(this).is(':checked')) {
$(this).closest('tr').addClass('success');
}
});
$('form.edit_order').submitOnCheck();
我toggle_shipped_state
操作是:
def toggle_shipped_state
@order = Order.find(params[:order_id])
@order.update_attributes(shipped_or_delivered: Time.now)
end
檢查框可以正常工作,@order
的shipped_and_delivered
屬性正確更新。但是,取消選中該複選框不會執行任何操作。我如何確保取消選中該複選框會創建一個AJAX調用以更新nil
的相應訂單的shipped_and_delivered
屬性?