mercredi 21 décembre 2016

Ruby Nested Form

Actually, On saving it must save, but i am getting error and tried to figure out the error where i did mistake.

Kindly help me with this error.

Thanks in Advance.

Controller

def new
  @fooditem = Fooditem.new
  3.times { @fooditem.fooditemprices.build}
end

#Creating Food Items
def create
    @fooditem = Fooditem.new(fooditem_params)
    if @fooditem.save
        flash[:success] = "Food item created successfully."
        redirect_to fooditems_path
    else
        render 'new'
    end
end

Model(s)

class Fooditem < ApplicationRecord
  has_many  :fooditemprices, dependent: :destroy
  accepts_nested_attributes_for :fooditemprices, reject_if: lambda {|attributes| attributes['price'].blank?}, allow_destroy: true
end

class Fooditemprice < ApplicationRecord
  belongs_to :fooditem

  validates :size, presence: { message: "Size must exists." }
  validates :price, presence: { message: "Price must exists." }
end

Form data

<%= f.fields_for :fooditemprices do |ftp_form| %>
 <div class="col-sm-9 row col-sm-offset-3">
   <div class="col-sm-3">  
     <%= ftp_form.select :size, ["Full", "Half", "Small", "Medium", "Large"].collect { |p| [p, p] },{}, {class: "form-control"} %>
   </div>     
   <div class="col-sm-3">
      <%= ftp_form.number_field :price, placeholder: "Price", class: "form-control" %>
   </div>
   <div class="col-sm-3">      
      <%= ftp_form.number_field :weight, placeholder: "Weight", class: "form-control" %>
   </div>                
   <div class="col-sm-3">               
      <%= ftp_form.select :weight_in, ["Grams", "ml"].collect { |p| [p, p] },{}, {class: "form-control"} %>
   </div>
  </div>
<% end -%>

Error

fooditem must exist

Aucun commentaire:

Enregistrer un commentaire