form_withの使い方

37日目です。

form_withとは

Rails5.1から導入されたヘルパーメソッド。同時に非推奨(将来的になくなる)となったform_forとform_tagの代わりとなる。ビューファイルで使用することで、簡単にフォームの生成ができる。

なぜ調べたか?

自分で一からアプリを作るに当たって、取り入れたいと思った為。前々から存在は耳にしていたもの、カリキュラムがform_forとform_tagを使用していた為、触れる機会がなかった。

使い方例

    <%= form_with(model: user, local: true, url: users_path)do |f|  %>
      <%= f.text_field :name %>
      <%= f.submit %>
    <% end %>

「model」オプション
生成するフォームがどのモデルに基づいて作られるかを示すオプション。form_forの第一引数と同じのため、このモデルから推測された送信先へ送信するフォームが生成される。

↓modelオプションが下記のようなフォームを生成している

    <form action="/users" method="post">
    ・・・
    </form>

「local」オプション
form_withはデフォルトでsubmitによるデータ送信に「Ajax」を使うため、「 local: true」で使用しないように設定している。

所感

Ajax通信などはこれから学習する内容のため、これからform_withの内容と合わせて理解したい。
また、今回作成中のアプリはカリキュラム通りのRails 5.0.7.2で作成してしまっていたため、とりあえずはform_forでフォームを作成するしかない。(余裕があればRails5.2以降で別の雛形を作り、移し換えるという方法もあるのでは?)
railsのバージョンにも気を配らなければならないこと学んだので、次回から活かしていく。

【Rails入門説明書】form_withについて解説 | プログラミング入門ならWEBCAMP NAVI

rails-ujs と form_with の使い方 - ボクココ


本日は課題である「ブログ投稿アプリ」をひたすら実装していました。
失敗したことは、データベース設計をしてテーブルを作っただけでMaterialize.cssをビューファイルに貼り付けてしまったことです。
そのあと機能をどのようにつけていくのかが混乱してしまいました。
基本は「ルーティング→コントローラー→ビュー」の順番に作っていくべきだと思うので、基本通りに進めていきます。
完成したらブログに載せたいです。