0

간단한 앱으로 중첩 된 속성을 배우려고합니다.has_many field_for 및 중첩 된 속성

class Ticket < ActiveRecord::Base 
    has_many :avatars 
    accepts_nested_attributes_for :avatars 

end 

class Avatar < ActiveRecord::Base 
    belongs_to :ticket 
end 

<%= form_for @ticket do |f| %> 

    <%= f.label :name %> 
    <%= f.text_field :name %> 

    <%= f.label :description %> 
    <%= f.text_field :description %> 

    <%= f.fields_for :avatar**s** do |m| %> 
    <%= m.label :name %> 
    <%= m.text_field :name %> 
    <% end %> 
    <%= f.button :submit, class: "btn btn-primary" %> 
    <% end %> 

사용 :

<%= f.fields_for :avatar do |m| %> 

없는 무엇 I'am : 아바타 (복수) 필드는 작동 대신에 표시되지 않습니다?

편집

감사합니다.

나는이 문제를 찾을 수 : 티켓 컨트롤러에서 지금

 def new 
     @ticket = Ticket.new 
     @ticket.avatars.build #before this line is missing 
     end 

내가보기에

 @ticket.comments.name 

아바타에 나에게 정의되지 않은 메서드의 이름을 '줄이 중첩 된 값을 표시하는 방법을 모른다 컨트롤러

+0

당신은 무엇을 작동하지 않습니다 의미합니까에게 :

는 또한, 좀 봐? 오류 메시지가 있습니까? –

답변

0

단수로 사용해야하기 때문에 시간당 하나의 아바타를 만듭니다.

여러 아바타를 반복하려면 foreach, <% @ticket.avatars.each do %>을 사용해야합니다. http://www.createdbypete.com/articles/working-with-nested-forms-and-a-many-to-many-association-in-rails-4/

+0

사실 그건 사실이 아닙니다. 'forms_for'는 관련된 모든 객체를 위해 몸체를 렌더링합니다. –

+0

정말 이니? 레일즈는 얼마나 많은 아바타 인스턴스 (이 특정 예제에서)가 생성되는지를 어떻게 알 수 있습니까? 나는 왜 이것이 작동하지 않는 다른 제안에 열려 있습니다. – Miknash

+0

나는 죽었습니다! 여기서 문제는'@ ticket '이 어디에서 유래했는지 모른다는 것입니다. 이미 여러 개의 '아바타'가있는 경우 모두 렌더링됩니다. [렌더링되는 항목의 색인을 얻을 수도 있습니다] (https://stackoverflow.com/questions/4853373/rails-fields-for-with-index). –