#form_for
Railsでフォームタグを作成できるメソッド
ユーザの登録や情報の更新機能はform_for、検索機能はform_tag
##form_forの引数
引数にはモデルのインスタンスを指定。
※モデルのインスタンスとは、データベースに保存したいクラスのインスタンス。
<%= form_for(@user) do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
form_for
ではform_tag
のようにパス先の指定をしない。
def new
@user = User.new
end
def edit
@user = User.find(params[:id])
end
コントローラで作成したインスタンスがnewメソッド
で作成され、情報を持っていなければcreateアクション
、すでに情報を持っていればupdateアクション
等に割り振ってくれる。
##form_forでの投稿フォームの作成の仕方
「f.htmlタグ名:カラム名」という風に記載する。
<%= form_for(@user) do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
上記の例だとuserテーブル
のnameカラム
に保存される。
####・form_tag
検索フォームのようなフォームはデータベースが必要ではないため、form_tagを使用する。
####・urlオプション
<%= form.submit %>を押した時のアクションを指定できる。
<%= form_for @fruit, url: fruit_bulk_create_path do |form| %>
<%= form.label :name %> <%= form.text_field :name, id: :fruit_name %>
<%= form.label :description %> <%= form.text_area :description, id: :fruit_description %>
<%= form.submit "一括登録" %>
<% end %>
上記のコードでは「form.submit」を実行すると、「fruit#fruit_bulk_create」アクションが実行される。