2012-11-01 29 views
1

我有一個模型Subject和嵌套模式Lessons嵌套表格範本未知屬性錯誤

我遇到未知屬性的問題:subject_id

我已經嘗試了不同的解決方案,在Rails 3 Nested Models unknown attribute Error建議,但我仍然接收錯誤。

我是Rails的新手,我似乎無法弄清楚出了什麼問題。如果有人能幫助我,我將不勝感激。

這是我的相關文件。

物體模型

attr_accessible :subjectCode, :subject_id 

    has_many :lessons, :dependent => :destroy 
    accepts_nested_attributes_for :lessons, :reject_if => lambda { |a| a[:content].blank?  }, :allow_destroy => true 

end 

課型號

attr_accessible :lessonName 
    belongs_to :subject 

主體控制器

def show 
    @subject = Subject.find(params[:id]) 
end 

def new 
    @subject = Subject.new 
    @lesson = @subject.lessons.build 
end 

def create 
    @subject = Subject.new(params[:subjectCode]) 
    if @subject.save 
    redirect_to @subject, :notice => "Successfully created subject." 
    else 
    render :action => 'new' 
    end 
end 

主題形態

<%= form_for @subject do |f| %> 
<%= f.error_messages %> 
<p> 
    <%= f.label :subjectCode %><br /> 
    <%= f.text_field :subjectCode %> 
</p> 
<%= f.fields_for :lessons, @lesson do |builder| %> 
<p>  
<%= builder.label :lessonName %> <br/> 
<%= builder.text_area :lessonName, :rows=>3 %> 
</p> 
<% end %> 
<p><%= f.submit "Submit" %></p> 

的routes.rb

resources :subjects do resources :lessons end 

回答

0

應放在課模型subject_id,因爲它屬於Subject,你應該把它放在訪問過,並在主題模式也提出lessons_attributesattr_accessible。我覺得代碼來構建你的創造行爲主體應該是:

@subject = Subject.new(params[:subject]),不

@subject = Subject.new(params[:subjectCode])

試試這個,看看發生什麼事。

+0

我找到了解決方案。我錯過了課程表中的subject_id列。我做了一次遷移並且工作。還是要謝謝你的幫助。 –