2012-09-22 4 views
0

나는 새로운 유치원중첩 된 형태로 디스플레이 오류

<%= form_for @kindergarten, :html => {:multipart => true} do |f|%> 

      <%= render 'shared/error_messages', object: f.object %> 
     </br> 
      <%= f.fields_for :photos do |p| %> 
       <%= p.label 'upload photo'%> 
       <%= p.file_field :image %> 
      <% end %> 
     </br> 
      <%= render 'about_company', f: f%> 
     </br> 
      <%= render 'contact', f: f %> 
      <%= f.submit "Create my account", class: "btn btn-large btn-primary" %> 
     <%end%> 

이 뒤에 논리는 1 개 유치원은 여러 장의 사진을 가질 수 있다는 것입니다에 대한 다음과 같은 형식으로 선언해야합니다. 유치원 컨트롤러처럼 보이는 방법

유치원

has_many :photos, limit: 7, dependent: :destroy 
accepts_nested_attributes_for :photos 

사진

attr_accessible :image, :logo, :kindergarten_id 
    belongs_to :kindergarten 
    mount_uploader :image, ImageUploader 

    validates :kindergarten_id, presence: true 
    validates :image, presence: true 

그리고 여기 : 이제

def new 
    @kindergarten = Kindergarten.new 
    @kindergarden.photos.build 
    end 

,

여기 모델의 선언이다 당신은 @kindergarten.photos.build 대신 @kindergarden.photos.build를 작성했습니다

undefined method 'photos' for nil:NilClass 

Application Trace | Framework Trace | Full Trace 
app/controllers/kindergartens_controller.rb:5:in `new' 
+2

맞춤법 오류 : 유치원은 유치원과 동일하지 않습니다 – rossta

+0

이제 바보처럼 느껴집니다. 답변 해주셔서 감사합니다! –

답변

1

: 새로운 @kindergarten 때 나는 다음과 같은 오류가 생성됩니다. 오타가 실제 코드에 없기를 바랍니다. @kindergarten=Kindergarten.create도 참조하십시오. new를 호출하는 경우 저장되지 않은 레코드가 만들어지며 save 메소드가 호출되어야합니다. 이것이 NilClass 오류의 원인 일 수 있습니다.

관련 문제