ネストしてるformで検証エラーを表示したい時よくハマる

ネストしているformで検証エラーを表示をしたい時によくハマるのでメモ。

注意するところは

  • rederを実行すると、最後に実行したactionでのインスタンスのみがテンプレートに渡される
    • posts#showからcomments#createを実行して、検証エラーだった場合は、comments#createのインスタンスしかテンプレートに渡されない
  • テンプレートを指定する時はcontrollerをまたいでるので、renderメソッドの引数にはcontrollerとアクションを指定しなければならない
    • render "posts/show"

以上。