2017-04-20 17 views
0

예약 번호가 많은 Booking 모델이 있습니다. Booking에는 start_date 및 end_date가 있습니다. Booking_Items는 다른 start_date 및 end_date 값을 가질 수 있습니다.Rails, Cocoon : 부모로부터 중첩 된 양식의 값 설정

난 누에 고치를 사용하여 중첩 된 양식이 있습니다. 그것은 잘 작동합니다 - 추가 항목, 업데이트, 삭제를 허용합니다. 모든 새로운 Booking_Items의 start_date 및 end_date를 부모의 default_date 및 end_date로 기본 설정하고 싶습니다.

중첩 항목의 동적 기본값을 설정하는 올바른 방법이 있습니까?

답변

0

가장 간단한 방법은 :wrap_object 옵션 (documentation)을 사용하는 것입니다. 사용자가 양식에 예약의 시작일/종료일을 변경하는 경우이이이 서버에 사전 렌더링되어 있기 때문에 당신이

= link_to_add_association('add booking-item', @form_obj, :booking_items, 
    wrap_object: Proc.new { |bi| bi.start_date = @booking.start_date; bi }) 

같은 일을 할 수 있습니다, 이것은 정말 "동적"아니다, 새로운 예약-항목 것입니다 여전히 원래 날짜를 사용하여 렌더링됩니다. 원하는 경우 js 및 cocoon callbacks을 사용하여 되돌려 야합니다.