2012-12-20 51 views
0

我跟隨此屏幕截圖製作嵌套模型表單。 http://railscasts.com/episodes/196-nested-model-form-part-1嵌套表單錯誤 - ArgumentError(參數的錯誤數目(0代表1)):

現在,我想我的應用程序包含這樣一個嵌套的模型窗體,但我收到了一個參數錯誤(錯誤數量的參數(0爲1))。

我似乎無法弄清楚我錯了什麼地方,想尋求一些建議,我可以嘗試什麼以及爲什麼會發生一些錯誤。

錯誤發生在主題模型中的這一行上。

has_many :lessons, :dependent => destroy 

的其他相關的代碼:

主題控制器:

def new 
    @subject = Subject.new 
    #3 times one for lecture one for lab one for tut. 
    3.times{@subject.lessons.build} 

    respond_to do |format| 
     format.html # new.html.erb 
     format.json { render json: @subject } 
     format.js 
    end 
    end 

物體模型

class Subject < ActiveRecord::Base 
    has_many :lessons, :dependent => destroy 
    attr_accessible :lesson_attributes, :acad_unit, :cohort_size, :discipline, :remarks, :subject_code, :subject_name, :year_of_study 
    accepts_nested_attributes_for :lessons, :reject_if => lambda { |a| a[:lesson_type].blank? }, :allow_destroy => true 
end 

課模型

class Lesson < ActiveRecord::Base 
    belongs_to :subject 
    attr_accessible :frequency, :lesson_type, :no_of_lesson, :possible_venues 
end 

_form.html.erb

<%= form_for(@subject,:remote=>true) do |f| %> 
    <% if @subject.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@subject.errors.count, "error") %> prohibited this subject from being saved:</h2> 

     <ul> 
     <% @subject.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <div class="field"> 
    <%= f.label :subject_code %><br /> 
    <%= f.text_field :subject_code %> 
    </div> 
    <div class="field"> 
    <%= f.label :subject_name %><br /> 
    <%= f.text_field :subject_name %> 
    </div> 
    <div class="field"> 
    <%= f.label :year_of_study %><br /> 
    <%= f.text_field :year_of_study %> 
    </div> 
    <div class="field"> 
    <%= f.label :discipline %><br /> 
    <%= f.text_field :discipline %> 
    </div> 
    <div class="field"> 
    <%= f.label :acad_unit %><br /> 
    <%= f.text_field :acad_unit %> 
    </div> 
    <div class="field"> 
    <%= f.label :cohort_size %><br /> 
    <%= f.text_field :cohort_size %> 
    </div> 
    <div class="field"> 
    <%= f.label :remarks %><br /> 
    <%= f.text_field :remarks %> 
    </div> 

    <ol> 
    <%= f.fields_for :lessons do |builder| %> 
    <%= render "lesson_fields", :f => builder %> 
    <% end %> 
    </ol> 

<% end %> 

_lesson_fields.html.erb

<p> 
<div class="field"> 
    <%= f.label :lesson_type %><br /> 
    <%= f.text_field :lesson_type %> 
    </div> 
    <div class="field"> 
    <%= f.label :no_of_lesson %><br /> 
    <%= f.text_field :no_of_lesson %> 
    </div> 
    <div class="field"> 
    <%= f.label :frequency %><br /> 
    <%= f.text_field :frequency %> 
    </div> 
    <div class="field"> 
    <%= f.label :possible_venues %><br /> 
    <%= f.text_field :possible_venues %> 
    </div> 
</p> 
+0

錯誤在哪個文件,什麼行...從你的stacktrace看到.. –

+1

This line:has_many:lessons,:dependent => destroy –

+0

這是完整的堆棧跟蹤。 ArgumentError(錯誤的參數數量(0代表1)): app/models/subject.rb:2:in <' app/models/subject.rb:1:in <' app/controllers/subjects_controller.rb:1:在' –

回答

4

我想你想:

has_many :lessons, :dependent => :destroy 

Here你會發現一個很好的話題討論。

+0

爲了澄清,這裏的問題是缺少的:on destroy。 –

+0

謝謝!有效。 –

相關問題