LoginSignup
1
2

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