form_tagの基本構造と記述の仕方について、使い方をよく理解していなかったのでまとめました。
form_tagとは
railsでアプリケーションを作成する際のヘルパーメソッドで、
HTMLで投稿フォームを作成するよりも簡単に作ることができ、
セキュリティ面でもform_tagを使用することが推奨されている。
form_tagの基本構造
form_tag(フォームでボタンを押すと飛ぶリンク先 , HTMLメソッド) do
ここに詳しいフォームの項目を書いていく
end
もう少し詳しく書くと、以下のようなパターンがあります
①リンク先を相対パスで指定
form_tag('/tweets', method: :post)do
中身
end
②リンク先を名前つきルートで指定
form_tag(tweets_path, method: :post)do
中身
end
③リンク先をコントローラーとアクションで指定(対応するビューに飛ぶ)
form_tag({:controller => 'tweets' :aciton => 'create'},{:method => :post})do
中身
end
④リンク先をコントローラーとアクションで指定(③をシンボル化したもの)
form_tag({controller: :tweets, action: :create},{method: :post})do
中身
end
以上の4種類の書き方は全て同じ意味を持ちます。
色々な書き方がありますが、結局はリンク先に「どのビューファイルを呼び出すのか」ということを記述しています。
それがパスなのか、名前つきルートを使うのか、コントローラーとアクションを記述するのか、の違いです。
以下参考