deviseを使った場合の、form_withを分解して説明してみる。

form_withを何回調べてもよく詰まるので分解して記録しておきます。

deviseでユーザー管理機能(ログイン機能)を作成している時出てくる、

<%= form_with model:@user, url: user_registration_path, class: 'registration-main',
local: true do |f| %> 

 

form_with

フォームを作成する。

 

model:@user

@userはdeviseで自動生成されるもので、登録されたユーザーの情報でmodels/user.rbから情報を持ってくる。

 

url:user_registration_path

rails routesでdevise/registration#createのPrefixに_pathをつける。

createアクションを見るのは、新規登録で保存するためnewからcreateへ送っている作業なので、HTTPメソッドがPOSTのものを確認する。

 

class

cssを適応している。

 

local: ture

HTMLとしてフォームを送信する場合必要であり、もしなければajax通信によるフォームの送信という意味になる。

 

deviseは色々自動生成してくれて便利だが、何をやってくれているか分かりにくいので気になることは都度調べていく。