2011-03-15 2 views
4

저는 비즈니스와 주소의 두 모델 사이에 연관이 있습니다. 사업장에는 등록 된 주소가 있습니다. 나는 이것을 다음과 같이했다.accepts_nested_attributes_for 내 하위 양식 렌더링을 중지합니까?

class Business < ActiveRecord::Base 
    has_one :registered_address, :class_name => "Address", :foreign_key => :business_registered_address_id 
    accepts_nested_attributes_for :registered_address 
end 

class Address < ActiveRecord::Base 
    belongs_to :business 
end 

이 연결은 내 용도로 적합합니다.

= form_for @business do |form| 
    = form.inputs :name => "Registered address" do 
    = form.fields_for :registered_address do |address| 
     = address.input :postcode 
     = address.input :line_1 
     = address.input :line_2 
     = address.input :line_3 
     = address.input :town 
     = address.input :county 

아무 것도 표시되지 않고 비어있는 필드 집합 만 표시됩니다.

비즈니스 모델의 accepts_nested_attributes_for 행을 주석 처리하면 모든 필드가 올바르게 표시되지만 저장되지는 ​​않습니다.

내가 뭘 잘못하고 있는지 누가 알 수 있습니까?

+0

business_controller.rb 파일을 표시 할 수 있습니까? –

답변

6

쓰기를하는 데 도움이 모든 형태를

희망을 표시합니다

당신은 당신의 컨트롤러 예를 들어, 쓸 수 있습니다 내가 생각하기에)

def new 
    @business = Business.new 
    @business.build_registered_address 
    ... 
end 

또는 양식

= form_for @business do |form| 
    = form.inputs :name => "Registered address" do 
    = form.fields_for :registered_address, @business.registered_address.new do |address| 
     = address.input :postcode 
     = address.input :line_1 
     = address.input :line_2 
     = address.input :line_3 
     = address.input :town 
     = address.input :county 
+0

아, 나는 business.build_registered_address를 놓쳤다. .. 고마워. –

1

form.fields_for는 @의 business.registered_adress에있는 각 개체에 대한 블록을 렌더링 해 주셔서 감사합니다. 배열이 비어 있으면 아무것도 표시되지 않습니다. new (

@bussines.registered_address.new 

그리고 응용 프로그램이이 작업에 대한 컨트롤러에

관련 문제