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