2014-05-18 2 views
1

Product 테이블에 나열된 제품을 주문할 수있는 Client이 있습니다. 나는 모든 제품을 하나의 주문 양식으로 보여주고 싶다. 그래서 같이여러 주문 추가하기

:

product A: [amount] 
product B: [amount] 

클라이언트는 매일 주문 제품을 추가 할 수 있습니다. 따라서 모든 제품을 client_id와 현재 날짜의 타임 스탬프로 묶어서 번들로 묶을 필요가 없습니다.

고객이 원하는 것은 제품 목록에서 선택하고 제품 당 주문하고자하는 금액을 선택할 수 있다는 것입니다. 따라서 모든 제품에 대해 고객이 데이터베이스에 새 주문 행을 추가해야합니다.

주문 배열을 만들고이를 주문 테이블에 게시하려면 어떻게해야합니까?

답변

0

여러 ids을 양식에서 컨트롤러로 전달해야합니다. 이렇게하려면, 당신은 규칙을 중단해야 할 수도 있습니다 :

#app/views/orders/new.html.erb 
<%= form_tag(orders_path), method: :post %> #-> should take to orders create method 
    <% @products.each_with_index do |i, product| %> 
     <%= product.name %><%= text_field "order[#{i}][#{product.id}]" 
    <% end %> 
<% end %> 

#app/controllers/orders_controller.rb 
def create 
    if params[:order].kind_of?(Array) 
     for order in params[:order] 
      product = order.keys #-> outputs [array num, product_id] 
      new_order = Order.new(product_id: product[1], user_id: current_user.id, qty: order[1]) 
      new_order.save #-> creates new row with product_id, user_id, qty 
     end 
    end 
end 

여기에 좋은 참고있다 : 당신이 말할 수 Add multiple items to a cart at the same time

, 이것은 조금 까다 롭다는; 그래서 우리가 일할 수 있도록 이것을 리펙토링하기 위해 일할 수 있기를 바랍니다.

+0

나는 사무실에 들어올 때 Skype에서 핑을 겁니다! –