スキャフォールドを生成すると、次のようなコントローラーが作成されます (一部のコードを削除しましたが、まだ機能します)。
def create
@post = Post.new(params[:post])
if @post.save
redirect_to @post
end
end
これにより、すべて正常に動作する /posts/ idにリダイレクトされます。
しかし、これがどのように機能するのかわかりません。@postはモデル クラスのインスタンスですが、リダイレクト先のコントローラーとアクションをどのように知るのでしょうか? この関係が (Postモデルとの間でPostsController) 明示的に定義されている場所はどこにもありません。
url_forこれをスキャフォールディングせずにゼロから複製しようとしましたが、定義したモデルに関連付けられていないというエラーが表示されます。resourcesin でルートを定義する場合でもroutes.rb。