2015-01-16 2 views
0

에 대해 partial throwing undefined 메소드`model_name '에 대해 fields_for 사용 과제가 개발할 여러 가지 장점이 있고 각 강도에 성능 수준이있는 시나리오가 있습니다.열거 자 : Class

컬렉션을 반복하고 강도 수준을 표시 한 다음 각 성능 수준에 대한 라디오 단추를 표시하여 사용자가 자신이 생각하는 위치를 선택할 수 있도록하려고합니다.

데이터가있는 컬렉션을 부분 렌더링하여 렌더링하고 있습니다.

<div id="content"><%= render partial: 'focus', locals: {assignment: @assignment}%></div> 

그리고 내가 지금처럼 컬렉션을 루프 fields_for 사용하려고하고있는 부분에

: 나는 문에 도착하면

<%= form_for @assignment do |f| %> 
    <% puts ("Found how many? ").concat(@assignment.AssignmentAssessments.length.to_s) %> 

    <div id="content"> 
    <%= form_for @assignment do |f| %> 
     <% puts ("Found how many? ").concat(@assignment.AssignmentAssessments.length.to_s) %> 
     <%= hidden_field_tag "assignment[AssignmentAssessments][]", nil %> 
     <%= fields_for @assignment.AssignmentAssessments.each do |a| %> 
     <%= strength_name(a.strength_id) %> 
     <% Performance.all.each do |p| %> 
      <label class="checkbox"> 
       <%= check_box_tag "assignment[AssignmentAssessments][]", a.id, p.level == a.performance_id, id: dom_id(a) %> 
       <%= label_tag dom_id(a), a.id %> 
      </label> 
     <% end %> 
     <% end %> 
    <% end %> 
</div> 

<%= fields_for @assignment.AssignmentStrengthPerformanceAssessments.each do |asses| %> 

내가 NoMethodError in Assignments#show 무엇입니까 및 상세히 말하는 것 undefined method 'model_name' for Enumerator:Class

나는 생각했다. entStrengthPerformanceAssessments는 nil 이었기 때문에 puts를 콘솔에 씁니다. 길이 호출에서 올바른 값인 6을 반환합니다.

모델이

class AssignmentStrengthPerformanceAssessment < ActiveRecord::Base 
    belongs_to :assignment 
end 

class Assignment < ActiveRecord::Base 
    has_many :AssignmentAssessments, class_name: 'AssignmentStrengthPerformanceAssessment' 
    accepts_nested_attributes_for :AssignmentAssessments 
end 

처럼 내가 그렇게

@assignment.AssignmentAssessments.build(user_id: 0, assignment_id: @assignment.id) 

처럼 내 컨트롤러 내가 컬렉션을 구축하고 아무것도 보여 전에 모든 지침은 기꺼이 환영합니다.

감사

+0

코드는 이해되지 않는다 (위의 코드에서) 었죠했다. 정확히 당신이 성취하고자하는 것은 무엇입니까? –

+0

문법 규칙을 존중 해주세요. – apneadiving

+0

을 사용해 보았습니다. has_many : assignassessments' –

답변

0

는 codementor 단일 모델 인스턴스

fields_for 작품이 덕분에 정렬 내가 MODEL_NAME를 호출 할 수 그것을 수집 레일을 통과 할 때 그것은 컬렉션

에 존재하지 않았기 때문에

작동 코드보기에서

<%= fields_for :assignmentassessments do |field| %> 
     <% assignment.assignmentassessments.each do |a| %>