如何列出模型的实例并使表单在同一视图上创建实例?
问题描述:
我有一个名为'chapter'(其唯一属性是'name'和'course__id')的模型,属于“课程”(和课程has_many章节)。在“展示”视图的课程中,我列出了该课程的所有章节。简单。如何列出模型的实例并使表单在同一视图上创建实例?
我想在列表末尾添加一个表单,以便用户可以轻松创建新章节。在我的控制器
所以,我添加了这一点:
@[email protected]
和视图的形式如下:
<% 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或不这样)?
感谢, 皮埃尔
答
你不想使用@course.chapters.build
这里,因为这确实增加了一个空章的过程。相反,您需要使用Chapter.new
并设置:course
选项。
@newchapter = Chapter.new(:course => @course)
它甚至可能没有必要在这里指定:course
取决于你如何使用@newchapter
。
非常感谢您的快速帮助! :课程确实不是必需的。我确信我尝试过,所以必须出现错误。 – Pierre 2009-08-04 15:59:26