2011-07-26 2 views
0

이 작업을 완료하는 데 정말로 문제가 있습니다. 모델 appointment과 모델 appointment_block이 있습니다. 약속 _ 블록 표는 시작 시간과 종료 시간을 datetime으로 저장합니다. split_time_block이라는 메서드를 사용하여 15 분짜리 패킷의 timerange를 나눠주고 문자열 배열로 반환합니다. 이것은 잘 작동합니다. 선택 버튼에서 다른 시간을 선택할 수 있습니다. appointments 테이블은 appointment_block_id를 참조합니다. 내 양식을 사용하여 새 약속 테이블 항목에 block_id를 보내려고합니다. 이 열에는 null 개의 항목 만 있습니다.2 개체에 form/formtastic을 사용할 때의 문제

= semantic_form_for(@appointment) do |f| 
    -f.inputs do 

    [email protected]_blocks.each do |form| 
     =f.input :date, ,:as => :select, :collection => form.split_time_block 

    = f.input :category, :collection => Category.all, :as => :select 
    = f.input :memo 

    - f.buttons do 
    = f.commit_button 

내 appointments_controller에는 다음이 포함 조언에 대한

@appointment = Appointment.new 
@appointment_blocks = AppointmentBlock.all 

들으!

답변

1

약속과 약속 _ 블록은 의미있는 방식으로 묶여 있지 않습니다 (귀하가 발견 한대로).

semantic_form_for(@appointment) do |f| 
    f.inputs do 

    f.semantic_fields_for :appointment_block do |ab_form| 
     ab_form.input :date, ,:as => :select, :collection => split_time_block 
    end 

    f.input :category, :collection => Category.all, :as => :select 
    f.input :memo 

    f.buttons do 
    f.commit_button 
end 

양식은 그 라인을 따라 뭔가를 보일 것입니다 :

당신이 당신의 모델 (들)에 세트 accepts_nested_attributes_for이 있다고 가정. 그런 다음보기가 렌더링되면 마크 업을 검사하면 요소 ID와 이름에 적절한 중첩이 표시되어야합니다. 이것은 컨트롤러로 전송하고 당신이 당신의 생성 기능에 약속 모델 객체를 인스턴스화됩니다 때, 당신은 당신의 중첩 된 개체를 볼 수 있어야합니다 :

@appointment = Appointment.new params[:appointment] 
flash[:notice] = @appointment.appointment_block.inspect <-- you should be able to see that the objects are nested properly, and in the db the id's line up properly. 

Formtastic documentation (look about halfway down for nested forms)

+0

안녕 답장을 들으! 하지만 지금 내 양식의 선택 버튼이 표시되지 않습니다 :( – daniel

+0

보기에서 그처럼 Category.all을 사용할 수 있습니까? 인스턴스 변수 만보기에서 액세스 할 수 있다고 생각 했으므로 컨트롤러에 '@ 카테고리 = category.all '및 귀하의보기를 사용합니다 :'collection => @ category, : as => : select ' –

+0

카테고리 선택 괜찮습니다. 내 semantic_fields_for에서 날짜 선택 표시되지 않습니다. accepts_nested_attributes_for : appointment_block'을 내 '약속'모델에 적용 – daniel

관련 문제