Как составить список экземпляров модели и создать форму для создания экземпляра в одном представлении? - PullRequest
0 голосов
/ 04 августа 2009

У меня есть модель с именем '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 или нет)?

спасибо, Pierre

1 Ответ

0 голосов
/ 04 августа 2009

Вы не хотите использовать @course.chapters.build здесь, потому что это добавляет пустую главу к курсу. Вместо этого вы захотите использовать Chapter.new и установить параметр :course следующим образом.

@newchapter = Chapter.new(:course => @course)

Может даже не потребоваться указывать :course здесь в зависимости от того, как вы используете @newchapter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...