2011-09-09 3 views
46

저는이 기본 질문과 관련된 모든 종류의 충돌 정보를 얻었으며 그 대답은 현재의 내 문제에 매우 중요합니다. 레일스 3에서는 매우 간단하게 belongs_to 관계로 accepts_nested_attributes_for를 사용할 수 있습니까? 뷰에서 belongs_to에서 accepts_nested_attributes_for 작업을 수행합니까?

class User < ActiveRecord::Base 
    belongs_to :organization 
    accepts_nested_attributes_for :organization 
end 

class Organization < ActiveRecord::Base 
    has_many :users 
end 

". 중첩 된 속성이 상위을 통해 관련 기록 의 특성을 저장할 수는"문서의 epochwolf이 첫 번째 줄에서 상태를 인용

= form_for @user do |f| 
    f.label :name, "Name" 
    f.input :name 

    = f.fields_for :organization do |o| 
    o.label :city, "City" 
    o.input :city 

    f.submit "Submit" 
+1

워드 프로세서 http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html은'언급하지 않습니다. 너는 그것을 시도하고 우리에게 돌아가 보지 그래? – epochwolf

답변

21

(내 강조).

this other SO question which is along the same lines as this one에 관심이있을 수 있습니다. 두 가지 가능한 솔루션을 설명합니다. 1) accepts_nested_attributes를 관계의 다른 쪽 (이 경우 Organization)으로 이동하거나 2) using the build method을 사용하여 양식을 렌더링하기 전에 User를 조직하십시오.

약간의 추가 코드를 처리하려는 경우 a potential solution for using accepts_nested_attributes with a belongs_to relationship을 설명하는 요지가 있습니다. 이 방법도 build 방법을 사용합니다.

+0

레일 4에 대한 그 요지를 업데이트했습니다 : https://gist.github.com/dmzza/ce9b6e660c576039afca984cda0f0aed – dmzza

19

중첩 된 속성은 Rails 4에서 belongs_to 연관에 대해 정상적으로 작동하는 것으로 보입니다. 이전 버전의 Rails에서는 변경되었을 수 있지만 4.0.4에서 테스트되었으므로 예상대로 작동합니다. 레일 3.2 belongs_to 협회

+10

레일 4.1.1에서 accepts_nested_attributes는 * polymorphic * belongs_to와 함께 작동하지 않습니다. 나는 그것을 협회의 또 다른 (has_one) 편으로 옮겨야했다. 이것은 단지 다른 사람들과 정보를 공유하는 것입니다. –

+0

나는 kid_drew에 동의합니다. 방금 레일스 버전 4.2.9에서 작동하도록했습니다. – Tintin81

9

은 중첩 된 모델은 다음 두 단계를 필요 :

(1) 아이 모델 (사용자 모델)에 새로운 attr_accessible를 추가합니다.

accepts_nested_attributes_for :organization 
attr_accessible :organization_attributes 

(2) 열 organization를 만들기 위해 자녀 컨트롤러 (사용자 컨트롤러)에 @user.build_organization를 추가합니다. 그래서 나는 그것을 의심 belongs_to`

def new 
    @user = User.new 
    @user.build_organization 
end 
+0

나는이 일을하고 있지만, 나는 그것을 작동시키는 데 많은 어려움을 겪고있다. 부모가 자식에 대해 중첩 된 매개 변수를 수락하는 것이 제대로 구축되지 않을 것으로 예상되면 – Csteele5

관련 문제