我知道这个问题已经被问过很多次了,但是尽管研究了过去 2 天,我仍然无法得到解决方案。
目前我在我的 Rails 应用程序中实现了 bootstrap-switch。从关闭切换到打开后,数据库正确更新了布尔值。
不幸的是,在使用引导开关返回页面时,它显示“关闭”而不是保存的切换状态“打开”。
我应该怎么做才能在每次切换时显示正确的状态?
真的非常感谢任何帮助..
导轨视图
<%= form_for([:admin, type], remote: true, url: admin_update_ot_path, method: :post) do |f| %>
<div class="field">
<%= f.hidden_field :product_id, :value => @product.id, :id => "pid" %>
<%= f.hidden_field :option_type_id, :value => type.id, :class => "tid" %>
<%= f.check_box :hidden, id: "bootstrapswitch", 'data-type' => type.id %>
</div>
<%= f.submit "update option type" %>
<% end %>
option_type.js.coffee
$(document).on "turbolinks:load", ->
$("[id='bootstrapswitch']").bootstrapSwitch()
option_type.js
$(document).on('turbolinks:load', function() {
$('.edit_option_type input[type=submit]').remove();
$('.edit_option_type input[type=checkbox]').on('switchChange.bootstrapSwitch', function(event, state) {
var product_id = $("#pid").val();
var option_type_id = $(this).data('type');
console.log(option_type_id);
if (state == true) {
$.ajax({
type: "POST",
dataType: "json",
url: "/admin/update_ot",
data: {option_type: {product_id: product_id, option_type_id: option_type_id, hidden: 1}}
});
}
else {
$.ajax({
type: "POST",
dataType: "json",
url: "/admin/update_ot",
data: {option_type: {product_id: product_id, option_type_id: option_type_id, hidden: 0}}
});
}
});
});