LoginSignup
2
0

More than 1 year has passed since last update.

【Rails】ラジオボタンのラベルにクリック判定をつける

Last updated at Posted at 2022-03-16

はじめに

Rails学習のアウトプット記事です。実装の際は参考サイトも併せてご確認ください。

 Ruby on Railsの学習中にて、フォームヘルパー機能を使ってラジオボタンとラベル(キャプション)を実装する際、ラベルとボタンが紐づいておらず、ラベルをクリックしても反応しなかった。
 HTMLだとlabelタグでボタン自体を囲ってしまう方法があるそうだが、フォームヘルパーでラベルを生成する場合はfor属性を使ってボタンを指定する必要がある為、その記述方法を書いていく。

開発環境

  • Rails 5.2.6
  • Ruby 2.6.3

実装

前提条件

  • form_withを使用
  • 記事内で使用されているモデル・値は以下の通り
項目
モデル名 Test
カラム名 status
カラム型 Boolean

生成されるHTML(ラジオボタン部分のみ)

<input type="radio" value="true" name="test[status]" id="test_status_true" />
<label for="test_status_true">Status true</label>
<input type="radio" value="false" name="test[status]" id="test_status_false" />
<label for="test_status_false">Status false</label>

ブラウザ上の表示

ラジオボタン

実際に書くコード(ラジオボタン部分のみ)

○○.html.erb
<%# f.radio_button :カラム名, 値 %>
<%# f.label :カラム名_値 %>

<%= f.radio_button :status, true %>
<%= f.label :status_true %>

<%= f.radio_button :status, false %>
<%= f.label :status_false %>

ラベルを日本語化したい場合はi18nのlocaleファイルに:カラム名_値部分を追加するか、
<%= f.label :status_false, "表示させたい文字列" %>
で変更可能。

保守性を考慮する場合はi18nで日本語化を行います。Railsのi18n概要はこちら

参考サイト(敬称略)

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0