form_with
参考:
form_with – ActionView::Helpers::FormHelper | Ruby on Rails API [Official]
使い方
URL を指定する例
<%= form_with url: create_post_path do |form| %> <%= form.text_field :title %> <% end %>
新規のモデルを指定する例
<%= form_with model: Post.new do |form| %> <%= form.text_field :title %> <% end %>
既存のモデルを指定する例
<%= form_with model: Post.first do |form| %> <%= form.text_field :title %> <% end %>
デフォルトで rails-ujs による XHR リクエストになる。通常のリクエストとして送信するためには、local: true
を指定する。
参考:
form_with でシンプルなサーチフォームを作成する | deadwood
Rails5 の form_with のデータの行き先 – Qiita
‘form_with’ API ドキュメント完全翻訳 | TechRacho
Rails の form helper 周りのコードリーディング | freedom-man
(新) form_with と (旧) form_tag, form_for の違い – Qiita
form_with — Building HTML forms in Rails 5.1 | Martin Rodriguez
Rails 5.1’s form_with vs. form_tag vs. form_for | Patrik on Rails
local: true
参考:
Rails 5.1 の form_with を使ってうまく redirect できないあなたへ | ひよっこエンジニアの雑多な日記
AJAX リクエストを送信する
参考:
rails-ujs と form_with の使い方 | ボクココ
form_with_generates_ids
form_with_generates_ids
のデフォルト値は config
で true
に設定されている。form_with
が id
を生成しないようにするためには config
の設定が必要。
# initializers/action_view.rb Rails.application.config.action_view.form_with_generates_ids = false
エンジンの場合の設定
# initializers/action_view.rb MyEngine::Engine.config.action_view.form_with_generates_ids = false
参考:
form_with_generates_ids – rails/configuration.rb at v5.2.2 · rails/rails – GitHub
check_box と label を要素に ID を設定せずに使う
参考:
Rails 5.1 の新しい form_with ヘルパーは INPUT 要素に id 属性を設定しない | Sooey
フォームヘルパーとフォームビルダーの関係
参考:
Rails の form helper 周りのコードリーディング | freedom-man
Turbolinks と Ajax を使用した際の redirect_to
クライアントサイドで Turbolinks.visit
を実行するコードを返す。
参考:
turbolinks と form_with を便利に使うための gem を作った | おもしろ web サービス開発日記
Turbolinks と Ajax を使用した際のエラー処理
参考:
turbolinks と form_with を便利に使うための gem を作った | おもしろ web サービス開発日記
Turbolinks 5 and form errors | Koffeinfrei
turbolinks-form
参考:
hsgubert/turbolinks-form: Turbolinks 5 extension to render form errors after a submit – GitHub