我有一个名为'chapter'的模型(其唯一的属性是'name'和'course__id')属于“course”(以及一个课程has_many章节)。在“展示”视图中,我列出了该课程的所有章节。容易。
我想在列表末尾添加一个表单,以便用户可以轻松创建新章节。
所以在我的控制器中,我添加了这个:
@newchapter=@course.chapters.build
并且视图上的表单如下所示:
<% form_for([@course,@newchapter]) do |c| -%>
<%= c.label :name, "New Chapter" %>: <%= c.text_field :name %>
<%= c.submit 'Create' %>
<% end %>
(为了清楚起见:它在@ course.chapters.each块之外)
现在,问题是@ course.chapters.size是实际的章节数+我在控制器中创建的空章。
除了最后一个(空)之外,有没有办法遍历所有@ course.chapters?还是有更好的做法(即不创建@newchapter或不是这样)?
感谢, 皮尔
答案 0 :(得分:0)
您不想在此使用@course.chapters.build
,因为这会为课程添加一个空章节。相反,您需要使用Chapter.new
并设置:course
这样的选项。
@newchapter = Chapter.new(:course => @course)
根据您使用:course
的方式,甚至可能无需在此处指定@newchapter
。