routes fixed, orders need to be nested

This commit is contained in:
ohsab 2014-11-25 15:27:12 +01:00
parent 2575133ce2
commit 5c07c0b2cc
5 changed files with 47 additions and 138 deletions

View file

@ -1,45 +1,32 @@
class OrdersController < ApplicationController
def new
def overview
@users = User.all
end
def create_session
user = User.find(params[:user_id])
if user
ordering(user)
redirect_to order_path
else
redirect_to overview_path
end
end
def order
@order = current_ordering_user.orders.build
def new
@user = User.find(params[:id])
@order = @user.orders.build
@products = Product.all
end
def create
@order = current_ordering_user.orders.build(order_params)
@user = User.find(params[:id])
@order = @user.orders.build(order_params)
if @order.save
#flash[:success] = "order created!"
end_order
redirect_to overview_path
else
redirect_to root_path
end
end
@products = Product.all
render 'new'
def destroy
end_order
redirect_to overview_path
end
end
private
def order_params
#if params.require(:order).permit(:products)?
params.require(:order).permit(:products)
#{}"products"=>"return_products_string"
end
end

View file

@ -1,11 +1,24 @@
<ul class="users">
<% @users.each do |user| %>
<li>
<%= form_for overview_path do |f| %>
<%= hidden_field_tag 'user_id', user.id %>
<%= @user.name %>
<%= f.submit user.name , class: "btn btn-primary" %>
<% end %>
</li>
<% end %>
</ul>
<% @products.each do |p| %>
<%#= render "orders/order_button" %>
<!-- dit moet in een andere file -->
<button class="btn btn-default product-btn"
data-name= '<%= p.name %>'
date-price= '<%= p.sale_price %>'>
<%= p.name %>
</button>
<!-- tot hier -->
<% end %>
<%= form_for( @order, url: orders_user_path(@user)) do |f| %>
<%= f.submit "Order", class: "btn btn-primary " %>
<% end %>
<div style="padding-top: 50px;" class="order_list ">
<p>
Nothing ordered yet!
</p>
</div>

View file

@ -1,98 +0,0 @@
<%= current_ordering_user.name %>
<% @products.each do |p| %>
<%#= render "orders/order_button" %>
<!-- dit moet in een andere file -->
<button class="btn btn-default product-btn"
data-name= '<%= p.name %>'
date-price= '<%= p.sale_price %>'>
<%= p.name %>
</button>
<!-- tot hier -->
<% end %>
<%= form_for @order do |f| %>
<div class="field">
<%#= f.text_area :products , placeholder: "dit zou een hidden field moeten zijn met product JSON..." %>
</div>
<%#= hidden_field_tag "products", "return_products_string" %>
<div class="hidden"></div>
<%= f.submit "Order", class: "btn btn-primary " %>
<% end %>
<div style="padding-top: 50px;" class="order_list ">
<p>
Nothing ordered yet!
</p>
</div>
<script charset="utf-8">
var products = {};
//var product_number = 0;
$(document).ready(function() {
//Making/adding orderlist/JSON
$('.product-btn').click(function() {
//product_number++;
var name = $(this).data('name');
var price = $(this).data('price');
if(products.hasOwnProperty(name)){
products[name].number_of++;
} else{
products[name] = {
name : name,
price : price,
number_of: 1
}
}
update();
});
//updates the orderlist view
var update = function(){
$('.order_list').empty().append("<p>Ordered: </p>" + JSON.stringify(products) );
jQuery.each(products, function(i, product) {
$(".order_list").append("<p> - "+ i +": "+ product.number_of +"</p>");
});
$('.hidden').empty().append("<input id='order_products' name='order[products]' type='hidden' value="+ JSON.stringify(products) +" />")
}
});
</script>

View file

@ -0,0 +1,7 @@
<ul class="users">
<% @users.each do |user| %>
<li>
<%= link_to user.name , orders_new_user_path(user) %>
</li>
<% end %>
</ul>

View file

@ -2,21 +2,21 @@ Rails.application.routes.draw do
root "users#index"
resources :users
resources :products
resources :users do
member do
get 'orders/new'
post 'orders' => 'orders#create'
get 'overview' => 'orders#new'
post 'overview' => 'orders#create_session'
delete 'end_order' => 'orders#destroy'
end
end
resources :products
#products
get 'products' => 'products#new'
post 'products' => 'products#create'
#orders
get 'order' => 'orders#order'
post 'orders' => 'orders#create'
# The priority is based upon order of creation: first created -> highest priority.