Why do I get nil can't be coerced into BigDecimal
when I try to perform a calculation: here's the code:
model/drink.rb
class Drink
model/menu.rb
class Menu :destroy accepts_nested_attributes_for :drinks, :allow_destroy => true #Validations end
*Drink is the (nested)child model and Menu the parent model When I attempt to create a new drink the browser display following error message nil can't be coerced into BigDecimal app/models/drink.rb:7:in 'total-amount' app/controllers/menus_controller.rb:47:in 'create' app/controllers/menus_controller.rb:46:in 'create'
app/db/migration
class CreateDrinks 8, :scale => 2 t.decimal :price, :precision => 8, :scale => 2 t.decimal :vat, :precision => 8, :scale => 2 t.references :menu t.timestamps end add_index :drinks, :menu_id end end
controllers/drinks_controller.rb
class DrinksController @drinks } end end # GET /drinks/1 # GET /drinks/1.json def show @drink = Drink.find(params[:id]) respond_to do |format| format.html # show.html.erb format.json { render :json => @drink } end end # GET /drinks/new # GET /drinks/new.json def new @drink = Drink.new respond_to do |format| format.html # new.html.erb format.json { render :json => @drink } end end # GET /drinks/1/edit def edit @drink = Drink.find(params[:id]) end # POST /drinks # POST /drinks.json def create @article = Drink.new(params[:drink]) respond_to do |format| if @drink.save format.html { redirect_to @drink, :notice => 'Drink was successfully created.' } format.json { render :json => @drink, :status => :created, :location => @article } else format.html { render :action => "new" } format.json { render :json => @drink.errors, :status => :unprocessable_entity } end end end # PUT /drinks/1 # PUT /drinks/1.json def update @drink = Drink.find(params[:id]) respond_to do |format| if @drink.update_attributes(params[:drink]) format.html { redirect_to @drink, :notice => 'Drink was successfully updated.' } format.json { head :ok } else format.html { render :action => "edit" } format.json { render :json => @drink.errors, :status => :unprocessable_entity } end end end # DELETE /drinks/1 # DELETE /drinks/1.json def destroy @drink = Drink.find(params[:id]) @drink.destroy respond_to do |format| format.html { redirect_to drinks_url } format.json { head :ok } end end end
Please can anyone tell me what's wrong with the code?