IT박스

accepts_nested_attributes_for가 belongs_to와 함께 작동합니까?

itboxs 2020. 12. 13. 09:07
반응형

accepts_nested_attributes_for가 belongs_to와 함께 작동합니까?


나는이 기본적인 질문과 관련하여 모든 종류의 상충되는 정보를 얻고 있으며, 대답은 현재 내 문제에 매우 중요합니다. 그래서 간단히 말해서 Rails 3에서 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

보기에서 :

= 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"

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


문서 epochwolf는 첫 번째 줄에 "중첩 된 속성을 사용하면 상위를 통해 연결된 레코드에 속성을 저장할 수 있습니다."라는 상태를 언급 합니다 . (내 강조).

이 질문과 같은 줄에있는이 질문에 관심 있을 수 있습니다 . 두 가지 가능한 솔루션에 대해 설명합니다. 1) accepts_nested_attributes를 관계의 다른 쪽 (이 경우 조직)로 이동하거나 2) 양식을 렌더링하기 전에 사용자에서 조직을 빌드하는 방법사용합니다build .

또한 약간의 추가 코드를 처리 할 의향이있는 경우 belongs_to 관계와 함께 accepts_nested_attributes를 사용하는 잠재적 솔루션을 설명하는 요점을 찾았습니다 . build방법도 사용합니다 .


들어 belongs_to레일 3.2 연결, 중첩 된 모델은 다음 두 단계가 필요합니다 :

(1) attr_accessible자식 모델 (사용자 모델)에 새로 추가 합니다.

accepts_nested_attributes_for :organization
attr_accessible :organization_attributes

(2) @user.build_organization열을 생성하기 위해 자식 컨트롤러 (사용자 컨트롤러)에 추가 합니다 organization.

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

Ruby on Rails 5.2.1의 경우

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

class Organization < ActiveRecord::Base
  has_many :users
end

컨트롤러로 이동하여 "users_controller.rb"라고 가정합니다.

Class UsersController < ApplicationController

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

그리고 Nick이 한 것처럼보기 :

= 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"

결국 @ user3551164가 이미 해결되었음을 알 수 있지만 이제는 (Ruby on Rails 5.2.1) attr_accessible :organization_attributes

참고 URL : https://stackoverflow.com/questions/7365895/does-accepts-nested-attributes-for-work-with-belongs-to

반응형