我有一个主题模型和一个课程模型。我实现了一个嵌套模型表单。
创建主题后,我将其引导至一个页面,该页面据称显示了相关的课程。但是,我看不到教训。
我相信课程的数据没有正确保存,因为当我执行例如课程.find_by_subject_id('1') 时,我得到'nil' 作为回报。
我试图弄清楚多态性是如何在 Rails 上工作的,如果有人能指出我哪里出了问题,或者给我一些关于如何传递要创建的belong_to 类的值的指导,我将不胜感激。
主题模型
attr_accessible :subjectCode, :lessons_attributes
has_many :lessons, :dependent => :destroy
accepts_nested_attributes_for :lessons, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
课程模型
attr_accessible :lessonName, :subject, :subject_id
belongs_to :subject
主题控制器
def new
3.times {@subject.lessons.build}
end
def create
@subject = Subject.new(params[:subject])
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 do |builder| %>
<p>
<%= builder.label :lessonName %> <br/>
<%= builder.text_area :lessonName, :rows=>3 %>
</p>
<% end %>
<p><%= f.submit "Submit" %></p>
<% end %>
路线资源:科目做资源:课程结束