내 모델 중 하나에 중첩 된 특성을 허용하려고합니다. 이 모델의 이름은 Tournament이며, Tournament에는 많은 MapLists가 있습니다. 또한 주목할만한 점은 토너먼트가 적어도 하나의 MapList가 존재하는지 확인하는 것입니다. 마찬가지로 MapList는 tournament_id가 있는지 확인합니다. 참조 용으로 MapList에는 tournament_id, map_order 및 map_id의 3 가지 속성 만 있습니다. 토너먼트에 표시된 코드는 다음과 같습니다.새 레코드를 만들 때 accepts_nested_attributes_for를 어떻게 사용합니까?
accepts_nested_attributes_for :map_lists
내 토너먼트 기록과 관련된 문제가 있습니다. 예를 들어 다음과 같은 코드를 사용하여 새로운 토너먼트를 만들고 싶습니다.
t = Tournament.new({map_lists_attributes: [{map_id: 1, map_order: 1}]}, as: :admin)
이 코드는 작동하지 않습니다. t를 인스턴스화 한 직후에 t.map_lists를 호출하면 빈 관계가 생깁니다. 분명히, 나는 새로운 레코드를 만들고 있기 때문에 tournament_id를 설정할 수 없습니다. 이 문제를 어떻게 해결할 수 있습니까?
당신이 대회에 대한 attr_accessible 설정이 있습니까? –
나는 그렇다. 접근 가능한 목록에 map_list를 추가해야합니까? – Max
멋지다, 방금이 일을 어떻게해야하는지에 대한 답변을 추가했습니다. –