ruby on rails 4 - Cocoon, Bootstrap_Form_For and PostgreSQL updating all fields but boolean check box -
i using cocoon gem bootstrap_form_for in rails 4 application. working , have no problem creating , updating of fields except when try change set boolean field.
below find code, , appreciated.
products_controller:
def update respond_to |format| if @product.update(product_params) format.html { redirect_to @product, notice: 'product updated.' } format.json { render :show, status: :ok, location: @product } else format.html { render :edit } format.json { render json: @product.errors, status: :unprocessable_entity } end end end
categories_controller:
def create @category = category.new(category_params) respond_to |format| if @category.save format.html { redirect_to hq_company_settings_path(:anchor => "productstab"), notice: 'category created.' } format.js { redirect_to hq_company_settings_path(:anchor => "productstab") } else format.html { redirect_to hq_company_settings_path(:anchor => "productstab") } format.json { render json: @category.errors, status: :unprocessable_entity } end end
end
category model:
belongs_to :company has_many :products accepts_nested_attributes_for :products, reject_if: :all_blank, allow_destroy: true
form:
<!-- add products form --> <div> <%= bootstrap_form_for(@category) |f| %> <% if @category.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(@category.errors.count, "error") %> prohibited category being saved:</h2> <ul> <% @category.errors.full_messages.each |message| %> <li><%= message %></li> <% end %> </ul> </div> <% end %> <fieldset> <div class="input-group margin-bottom-20"> <span class="input-group-addon"><i class="fa fa-book"></i></span> <%= f.text_field :name, hide_label: true %> </div> </fieldset> <div> <div> <fieldset id="products"> <%= f.fields_for :products |product| %> <%= render 'product_fields', :f => product %> <% end %> </fieldset> </div> <div class="links margin-top-40"> <%= link_to_add_association ' add product', f, :products, class:"btn-u btn-u-blue btn-block" %> </div> <hr> </div> <div class="row"> <div class="col-md-12"> <span class="pull-right"> <%= f.submit "save", class:"btn-u btn-block" %> </span> </div> </div> <% end %> </div> <!-- end form wrapper -->
nested cocoon form:
<div class="nested-fields"> <div class="col-lg-9"> <div class="input-group margin-bottom-20"> <span class="input-group-addon"><i class="fa fa-plus"></i></span> <%= f.text_field :name, hide_label: true, placeholder: 'product name' %> </div> </div> <div class="col-lg-3"> <div class="input-group margin-bottom-20"> <span class="input-group-addon"><i class="fa fa-money"></i></span> <%= f.text_field :price, hide_label: true, placeholder: 'price' %> </div> </div> <div class="col-lg-4"> <div class="input-group margin-bottom-20"> <span class="input-group-addon"><i class="fa fa-tags"></i></span> <%= f.text_field :sku, hide_label: true, placeholder: 'sku/id #' %> </div> </div> <div class="col-md-4"> <div class="input-group margin-bottom-20"> <%= f.hidden_field :company_id, hide_label: true, value: current_user.company_id %> <%= f.form_group :tracking %> <%= f.check_box :tracking, label: " inventory tracking", class: 'radio1 js-switch', name: 'my-checkbox', inline: true %> <% end %> </div> </div> <div class="col-md-4"> <div class="input-group txt1 margin-top-1"> <span class="input-group-addon"><i class="fa fa-cart-plus"></i></span> <%= f.text_field :inventory, hide_label: true, class: "txt1", placeholder: 'quantity' %> </div> </div> <div class="col-md-6"> <div class="input-group txt2 margin-bottom-20"> <span class="input-group-addon"><i class="fa fa-cart-plus"></i></span> <%= f.text_field :minimum, hide_label: true, class: "txt2", placeholder: 'min. quantity' %> </div> </div> <p class="links col-md-6"> <%= link_to_remove_association " remove product", f, class:"btn-u btn-u-red btn-block" %> </p> </div>
the problem occurred giving checkbox "name" attribute bootstrap switch.
removing
name: 'my-checkbox'
from
<%= f.form_group :tracking %> <%= f.check_box :tracking, label: " inventory tracking", class: 'radio1 js-switch', name: 'my-checkbox', inline: true %>
ended fixing issue.
Comments
Post a Comment