2013-06-19 2 views
1

내 응용 프로그램에서 필요로하는 말 타기를위한 플러그인을 빌드합니다. 우리는 개인 주소로 배달하지 않는 운송 회사를 사용하지만 전국 각지의 소포 상점을 이용합니다. 따라서 사용자가 결제 과정에서 배송 단계로 넘어갈 때 배달을 수령 할 수있는 여러 장소 중에서 선택해야합니다.라디오 버튼으로 여러 속성 할당

제 문제는 라디오 버튼을 사용하여 사용자가이 장소/주소 중에서 선택할 수 있도록하려는 것입니다. 그렇다면 선택한 소포 샵 (거리 이름, 도시, 우편 번호 등)을 모든 속성에 게시하고 주문의 배송 주소로 저장하는 방법은 무엇입니까 (또는 가능합니까?)? 내가 지금 가지고있는 것은 다음과 같습니다 :

<%= form_for @order do |f| %> 
    <% @parcel_shops.each do |parcel_shop| %> 
    <%= f.fields_for :ship_address, parcel_shop do |ship_form| %> 
     # This is the part that i need to change 
     <%= ship_form.radio_button :attributes, parcel_shop.attributes 
    <% end %> 
    <% end %> 
    ... 
<% end %> 

어떤 도움을 주셔서 감사합니다, 미리 감사드립니다 :)!

답변

1

이 대답은 약간 복잡하지만 고맙게도 spree_address_book 확장 프로그램에서 좋은 예제가 있습니다. 주소록 확장을 사용하면 이전에 사용한 주소 중 하나를 라디오 버튼에서 선택하여 모든 데이터를 다시 입력 할 필요가 없습니다.

이 작동하는 방법의 핵심은 checkout_controller_decorator 순서 장식에 다음 checkout_controller의 before_filter 정상적인 어드레스인지 입력 또는 무선에 기초하여 상기 어드레스 PARAMS 설정

https://github.com/romul/spree_address_book/blob/master/app/controllers/spree/checkout_controller_decorator.rb https://github.com/romul/spree_address_book/blob/master/app/models/spree/order_decorator.rb

버튼 주소 선택이 사용되었습니다. 그런 다음 주문 데코레이터는 두 가지 형태의 입력을 모두받습니다. 만 배송 주소의 한 가지 유형을 수용하는 경우

, 당신은을 단순화 할 수 있지만, REPO의 코드는 당신이 그것을 수행하는 방법을 알아내는 데 도움이 될 것입니다

https://github.com/romul/spree_address_book/

관련 문제