2009-08-04 10 views
0

私は、「コース」に属しているコース(およびコースhas_manyの章)に属する 'chapter'というモデル(属性は 'name'と 'course__id'のみです)を持っています。コース 'ショー'ビューでは、そのコースのすべてのチャプターをリストします。簡単です。モデルのインスタンスをリストし、同じビュー上にインスタンスを作成するフォームを持つ方法は?

ユーザーが簡単に新しい章を作成できるように、リストの最後にフォームを追加したいと考えています。

ので、私のコントローラでは、私はこの追加しました:

@[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を作成しないか、このように作成しないか)

おかげで、 ピエール

答えて

0

あなたはこのコースに空の章を追加しないので、ここで@course.chapters.buildを使用する必要はありません。代わりに、Chapter.newを使用して、このような:courseオプションを設定します。

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

それも、あなたが@newchapterを使用しているかに応じて、ここに:courseを指定する必要はないかもしれません。

+0

ご協力いただきありがとうございます!コースは本当に必要なものでもありません。私はそれを試したと確信しているので、何か間違っていなければならなかった。 – Pierre

+0

あなたがスタックオーバーフローを表示した時間について、ryanb。 – erik

関連する問題