2012-09-22 70 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新時生成我得到以下錯誤:

undefined method 'photos' for nil:NilClass 

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

拼寫錯誤:幼兒園和幼兒園不一樣 – rossta

+0

現在我覺得自己像個白癡。感謝你的回答! –

回答

1

你寫@kindergarden.photos.build而不是@kindergarten.photos.build。我希望錯字不在實際的代碼中。 也試試@kindergarten=Kindergarten.create。如果您正在調用new,只會創建一個未保存的記錄,應該在之後調用save方法。這可能是NilClass錯誤的原因。