チェックボックスの作り方を調べていると、いくつかの方法があることがわかった。
①check_box
モデルに関連するチェックボックス
※パラメーターとして値を保存したい場合
②check_box_tag
モデルに関連しないチェックボックス
③collection_check_boxes
複数選択のチェックボックス
今回実装したい内容は①に当てはまるので、それをまとめる。
check_box
まずはマイグレーションファイルに以下を入力。
class Createxxxxxx < ActiveRecord::Migration[6.0]
def change
create_table :xxxxxx do |t|
t.boolean :カラム名 # 追記
t.timestamps
end
end
end
次にビューファイル。
<%= f.check_box 'カラム名', {:checked => true}, checked_value = “true”,unchecked_value = “false” %>
これでDBには(false:チェックなし) or (true:チェックあり)が登録される。
ちなみに上記のコードを分解すると、以下の内容となる。
f.check_box(カラム名, {オプション},checked_value = “true”,unchecked_value = “false” )
オプションについて
オプションには以下の種類がある。
-
:checked
チェックボックスのチェックの有無 -
:include_hidden
隠しフィールドは生成されない -
:size
フォームの幅 -
:maxlength
入力フィールドに入力可能な最大文字数 -
:accept
フォームで受付可能なMIMEタイプ -
:readonly
フォームの内容変更禁止 -
:disabled
無効化 -
:tabindex
Tabキーによる入力欄の移動順 -
:accesskey
フォームに移動するショートカットキー -
:id
要素固有の識別子 -
:class
要素を分類するクラス名 -
:title
要素の補足情報 -
:style
要素の補足情報 -
:dir
表記方向 -
:lang
基本言語
checked_value」と「unchecked_value」
「checked_value」と「unchecked_value」は、チェックされた場合と外された場合に取得できる値の設定。
チェックが着いていればtrue、外れていればfalseとなる。
ちなみにtrue、falseの代わりにchecked_value = “1”, unchecked_value = “0”
とすることもできる。
以上。