2011-12-20 6 views
0

Rails 3.1.1.rc3에서 작업 중이며 아래에 표시된 것처럼 2 개의 클래스가 있습니다. 내 양식에Ruby on rails : 중첩 된 속성 양식이 표시되지 않습니다.

class Customer < ActiveRecord::Base 
    has_many :orders, :dependent => :destroy 
    accepts_nested_attributes_for :orders 
end 

class Order < ActiveRecord::Base 
    belongs_to :customer 
end 

:

<%= form_for(@customer) do |f| %> 
    <div class="field"> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name,:class=>'textbox' %> 
    </div> 

    <%= f.fields_for :orders do |order_form| %> 
    <div class="field"> 
     <%= order_form.label :number %><br /> 
     <%= order_form.text_field :number, :class=>'textbox' %> 
    </div> 
    <%end%> 

<%end%> 

이 렌더링 (고객) 양식의 첫 번째 부분은 표시됩니다 만, (주문) 두 번째 부분은하지 않습니다. 모든 포인터는 감사하겠습니다. 감사.

+0

관심이있는 사람에게는 아주 좋은 기사입니다. [link here] (http://ryandaigle.com/articles/ 2009/2/1/what-s-edge-rails-nested-attributes) – revolver

답변

4

두 가지 (예가있다). 첫 번째 fields_for는 기본적으로 customer.orders를 반복하므로 아무런 주문이 없으면 결과가 출력되지 않습니다. 일반적으로 사용자가 입력해야하는 빈칸을 입력하면됩니다.

@customer.orders.build 

컨트롤러에 입력하십시오. 둘째, fields_forform_for과 매우 유사하므로 < % = 역시 사용해야합니다.

+0

감사! 이제 알겠습니다! – revolver

+0

이 (가) 저장된 일 :-) – roxxypoxxy

1

<%= f.fields_for :orders do |order_form| %> 

대신

<% f.fields_for :orders do |order_form| %> 

추가 편집 : how fields_for is defined를 보라

+0

이것은 올바른 대답입니다. 레일 3에서는 form_for, fields_for 등과 같이 어떤 종류의 출력을 생성하는 도우미에게 =를 입력해야합니다. –

+0

방금 ​​시도했습니다. 두 번째 양식도 나타나지 않습니다. 그러나 그것은 좋은 지적입니다. 감사. 내 질문을 수정했습니다. – revolver