使い方
参考:
Action View フォームヘルパー | Rails ガイド [公式]
フォームヘルパー | Rails 日本語ドキュメント (Ruby STUDIO)
概要
フォームヘルパー
ビューにおいてフォームや各種フィールドを生成するためのヘルパー
参考:
ActionView::Helpers::FormHelper
フォームビルダー
form_for
あるいは form_with
フォームヘルパー使用時に、フォーム内にフィールドを生成するためのヘルパー。フォームヘルパーは、実行時にフォームビルダーのインスタンスを作成し、ビルダーを引数にしてブロックを実行する。
参考:
ActionView::Helpers::FormBuilder
フォームオプションズヘルパー
セレクトボックスのオプションを生成するためのヘルパー
参考:
ActionView::Helpers::FormOptionsHelper
フォームタグヘルパー
form_for
あるいは form_with
フォームヘルパーを使わずに、素のフォーム要素 (各種 input
タグなど) を生成するためのヘルパー
参考:
ActionView::Helpers::FormTagHelper
フォームヘルパー
参考:
Rails のフォームヘルパー | 酒と涙とRubyとRailsと
Rails のビューヘルパー (View Helper) のまとめ | Rails Webook
Rails の form_for を使ったフォームの Controller / View / Model の連携した処理フロー | Rails Webook
form_for / form_tag の違い・使い分けをまとめた – Qiita
フォーム (form) | Railsドキュメント (railsdoc.com)
モデルを使わないフォーム
参考:
Rails 4 form without model and database – Stack Overflow
text_field
参考:
text_field – ActionView::Helpers::FormHelper | Ruby on Rails API [Official]
text_field – rails/form_helper.rb at v5.2.2 · rails/rails [Official]
text_field – rails/form_helper.rb at v5.2.2 · rails/rails [Official]
text_area
参考:
text_area – ActionView::Helpers::FormHelper | Ruby on Rails API [Official]
select
参考:
select | Railsドキュメント (railsdoc.com)
collection_select
フォームビルダーから collection_select を使ってフォームにセレクトボックスを表示する。
<%= form_for @post do |f| %>
<%= f.collection_select(
:auther_id, @authers, :id, :name, prompt: true) %>
<%= f.submit %>
<% end %>
Code language: ERB (Embedded Ruby) (erb)
フォームのあるビューを render
するコントローラのアクションで変数を設定する。
before_action :set_authers, only: %i[new edit create update]
private
def set_authers
@authers = Auther.all
end
Code language: Ruby (ruby)
参考:
collection_select – ActionView::Helpers::FormOptionsHelper | Ruby on Rails API [Official]
collection_select – ActionView::Helpers::FormBuilder | Ruby on Rails API [Official]
collection_select, undefined method `map’ for nil:NilClass – Stack Overflow
select_tag
参考:
select_tag – ActionView::Helpers::FormTagHelper | Ruby on Rails API [Official]
select_tag – rails/form_tag_helper.rb at v5.2.3 · rails/rails – GitHub
fields_for
関連レコード用のフィールドを生成する。
fields_for(record_name, record_object = nil, options = {}, &block)
Code language: Ruby (ruby)
@person
のアソシエーション permission
のフィールドを生成する例
<%= fields_for :permission, @person.permission do |permission_fields| %>
Admin? : <%= permission_fields.check_box :admin %>
<% end %>
Code language: ERB (Embedded Ruby) (erb)
参考:
Rails で1つのフォームで複数のモデルを登録・更新させる – Qiita
has_many through な関係で、複数レコードを new / create する時の書き方 | rokuro Fire
Rails fields_for のドキュメントを和訳しました。- Qiita
fields_for を使って一括更新する処理のベストプラクティスは何だろう | もふもふ技術部
fields_for Array attribute doesn’t iterate – Stack Overflow
fields_for – ActionView::Helpers::FormHelper | Ruby on Rails API [Official]
fields_for – ActionView::Helpers::FormBuilder | Ruby on Rails API [Official]
fields_for (ActionView::Helpers::FormHelper) | APIdock
form_for
参考:
form_for – ActionView::Helpers::FormHelper | Ruby on Rails API [Official]
fields
参考:
fields – ActionView::Helpers::FormHelper | Ruby on Rails API [Official]
label
参考:
label | Railsドキュメント (railsdoc.com)
label – ActionView::Helpers::FormHelper | Ruby on Rails API [Official]
label – ActionView::Helpers::FormBuilder | Ruby on Rails API [Official]
label_tag – ActionView::Helpers::FormTagHelper | Ruby on Rails API [Official]
label – rails/form_helper.rb at v5.2.3 · rails/rails – GitHub
rails/label.rb at v5.2.3 · rails/rails – GitHub
check_box
参考:
form_for で複数の check_box を表示して配列で取得する方法 – Qiita
form_for 内で 配列を作る方法 | せんべいって美味しいよね
チェックボックスにラベルを付ける
<%= form.label :agree_tos do |label| %>
<%= form.check_box :agree_tos %>
<%= label.translation %>
<% end %>
Code language: ERB (Embedded Ruby) (erb)
参考:
Rails でチェックボックスのラベルをクリックする | GPソフト Wiki
ラベルとインプット、横1列で表示する方法 | せんべいって美味しいよね
label – ActionView::Helpers::FormHelper | Ruby on Rails API [Official]
label – ActionView::Helpers::FormBuilder [Official]
translation – rails/label.rb at v5.2.2 · rails/rails – GitHub
collection_check_boxes
参考:
collection_check_boxes メソッドの構造確認 – Qiita
collection_check_boxes を使って input と label を div で wrap したい – Qiita
Rails4 で複数のチェックボックスを扱う – Qiita
collection_check_boxes – ActionView::Helpers::FormOptionsHelper [Official]
collection_check_boxes – ActionView::Helpers::FormBuilder [Official]
Rails collection_check_boxes – wrap each checkbox with <li> – Stack Overflow
radio_button
参考:
Ruby on Rails の form_for でラジオボタンを設置する方法 | FREE SWORDER
radio_button と label タグの for 属性を適切に設定する | イソップブログ
Rails のラジオボタン (f.radio_button)、セレクトボックス + enum (都道府県あり) の使い方 – Qiita
radio_button のチェックを入れる方法について | SakuraWi Blog
radio_button_tag と radio_button | なんとなく日々徒然と
radio_button | Rails ドキュメント (railsdoc.com)
radio_button – ActionView::Helpers::FormHelper | Ruby on Rails API [Official]
radio_button – ActionView::Helpers::FormBuilder | Ruby on Rails API [Official]
hidden_field
<%= form_for @user do |f| %>
<%= f.hidden_field :room_number %>
<% end %></pre>
<pre><%= form_for :user, url: { action: 'create' } do |f| %>
<%= f.hidden_field :room_number, value: 0 %>
<% end %>
Code language: ERB (Embedded Ruby) (erb)
参考:
hidden_field | Rails ドキュメント (railsdoc.com)
f.hidden_field と hidden_field_tag の使い方 | SakuraWi – BLog
hidden_field – ActionView::Helpers::FormBuilder | Ruby on Rails API [Official]
hidden_field – ActionView::Helpers::FormHelper | Ruby on Rails API [Official]
hidden_field_tag – ActionView::Helpers::FormTagHelper | Ruby on Rails API [Official]
パラメーターを配列にする
参考:
Rails のフォームで配列形式のデータを扱う方法 | WebOS Goodies
form の input value を配列で受け取りたい場合の name 属性 – Qiita
disable_with オプション
参考:
submit タグにつけておきたい disable_with オプション – Qiita
Rails の form 内で disabled された submit ボタンを再度 enable する | valid, invalid
data-disable-with re-enabling button – Stack Overflow
data-disable 属性
参考:
Default option for data-disable-with · Issue #299 · rails/jquery-ujs – GitHub
Allow default option for disabled-with part two · Issue #329 · rails/jquery-ujs – GitHub
formDisableSelector – rails/rails-ujs.coffee at v5.2.1 · rails/rails – GitHub
onclick
参考:
Ruby on Rails の form_for で submit する際に onclick 処理をする – Qiita
onsubmit
参考:
onsubmit の戻り値を false にして submit を実行しない/中断させる方法 | 小粋空間
Rails の form_for の submit を jQuery で中断したい – teratail
How to use onsubmit with form_tag – Stack Overflow
autofocus
参考:
他のボタンを設置する
参考:
Rails の Form 内の button で submit 以外のことをさせたい (link_to 的なこと) – Qiita
ソース
参考: