From 9e598c57518ba9618b237b1f8e44b88820352548 Mon Sep 17 00:00:00 2001 From: Benjamin Cousaert Date: Thu, 4 Dec 2014 19:28:21 +0100 Subject: [PATCH] Fix controller orders create action --- app/controllers/orders_controller.rb | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/app/controllers/orders_controller.rb b/app/controllers/orders_controller.rb index c0b79d4..b37d537 100644 --- a/app/controllers/orders_controller.rb +++ b/app/controllers/orders_controller.rb @@ -11,26 +11,38 @@ class OrdersController < ApplicationController @order_products = @order.order_products @products.each do |p| - @order.order_products.build(product: p) + @order_products.build(product: p) end end def create @user = User.find(params[:user_id]) - @order = @user.orders.build + @order = @user.orders.build(order_params) @products = Product.all - @order_products = @order.order_products + if @order.save + order_products = order_products_params + order_products.each do |k, v| + @order.order_products.create(product: Product.find(k), count: v[:count]) if v[:count].to_i > 0 + end + redirect_to root_path + else + @order_products = @order.order_products - @products.each do |p| - @order.order_products.build(product: p) + @products.each do |p| + @order.order_products.build(product: p) + end + render 'new' end - render 'new' end private def order_params - params.require(:order).permit(:products) + params.require(:order).permit() + end + + def order_products_params + params.require(:order).permit({:products => [:product_id, :count]})[:products] end end