form_for
は、渡されたオブジェクトの作成または更新用のフォームを作成します。オブジェクトが永続化されていない場合、関連付けられたURLは作成アクションをターゲットにします。さもなければ、目標とされたアクションが更新されます。 form_for
は、さまざまな種類のパラメータを受け取ってフォームを生成できます。あなたがRailsのurl_helpers
ドキュメントをチェックアウトする場合
、あなたはあなたのような何かを行うことができます表示されます。
<%= link_to 'First comment', blog_comment_path([@blog, @blog.comments.first]) %>
この
は
/posts/@post.id/comments/@post.comments.first.id
のようなパスを持つブログの最初のコメントへのリンクを生成します。また、これは、あなたの
routes.rb
に正しいセットアップを持っていることを前提としています
これにより
resources :blogs do
resources :comments
end
、あなたは、例えば、リンクやフォームを構築するために使用できるパスの束を生成します。したがって、コード内のform_for
も同様に動作します。それをurl_helperと考えてください。 @blog
とその投稿に関連付けられたコメント(@blog.comments.build
)があります。コメントはまだ保存されていないので、CommentsController#create
をターゲットとするコメントを作成するためのフォームが生成されます。関連するパスは/blogs/@blog.id/comments
のようになり、HTTPメソッドはPOSTになります。
また、詳細情報を取得するためにこれらのリンクをチェック:
Rails Routing
Rails Form Helpers
はblog.comments.buildと行動していますか?コメントコントローラには作成アクションしかありませんか? –
ビルドは基本的にオブジェクトの構造体を作成するために使用されます。新しいもの(例:Model.new)です。 – Mayank