LoginSignup
0
0

More than 3 years have passed since last update.

rubyのformについて

Posted at

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_forで使用できるhtmlタグ

image.png

・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」アクションが実行される。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0