1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Rails] form_with の2種類の書き方

Last updated at Posted at 2020-10-25

この記事ではmacOS Catalina10.15.6にインストールしたRuby 2.6.5を使っています。

form_withとは

  • 情報を送信するためのヘルパーメソッドです。
  • 入力に必要なHTMLを表示してくれます。
  • form_withには2つの書き方があります。
  • 1つ目は、入力された情報をデータベースに保存する場合、2つ目は__入力された情報をデータベースに保存しない場合__です。

データベースに保存する時

  • model: に続けて__モデルクラスのインスタンス__を記述します。
  • f.text_fieldでテキストボックスを作成します。
<%= form_with model: @book, local: true do |f| %>  
    <%= f.text_field :keyword, placeholder: "keyword", class: "search-input"%>
    <%= f.submit "search", class: "search-btn" %>
<% end %>

データベースに保存しない時

  • url:に続けて__情報送信先のパス__を記述します。
<%= form_with url: search_path, local: true do |f| %>
   <%= f.text_field :keyword, placeholder: "keyword", class: "search-input"%>
   <%= f.submit "search", class: "search-btn" %>
<% end %>

ルーティングでネストしている場合

  • 例えばpostコントローラーにcommentコントローラーのルーティングがネストしているとしましょう。
  • その場合、コードはこんな感じになります。
  • __モデルクラスのインスタンスを親クラスと子クラスの順で2つ__記述すれば良いのですね。
<%= form_with model: [@post, @comment] do |f| %>
  <%= f.text_field :comment%>
  <%= f.submit %>
<% end %>

参考

https://pikawaka.com/rails/form_with
https://qiita.com/hmmrjn/items/24f3b8eade206ace17e2

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?