0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「Rails」form_withメソッドでboolean型の値を選択する方法

Posted at

アプリの概要

Slackのようなworkspaceを実装し、メッセージのやり取りができるアプリを開発しています。
投稿メッセージのDBカラムにboolean型のResolveカラムを設けました。
(投稿内容のテキストの意味は無視してください、)
スクリーンショット 2025-04-29 19.54.05.png

Status:Resolve
=> 非表示
Status:Unresolve
=> 表示

実装したいこと

画像にあるように、DBカラムがResolveの場合はそれを表示させ、Unresolveに変更しそれを保存させる。という機能を実装しようと思いました。

SQLiteではboolean型は "0" or "1"

UIではResolve/Unresolveとなってますが、SQLiteのBoolean型は "0"と"1"なのでブラウザ表示したいときはどのような書き方をすれば自動で変換してくれるかわかりませんでした。

Railsガイドを見ると以下の記述がありました。
*Railsガイドより引用
=>https://railsguides.jp/form_helpers.html

@person = Person.new(city: "MD")
<%= form_with model: @person do |form| %>
 <%= form.select :city, [["Berlin", "BE"], ["Chicago", "CHI"], ["Madrid", "MD"]] %>
<% end %>

調べると、記述によって自動変換してくれるとのことなので、以下のように実装しました。

<%= form_with model: @post, local: true do |f| %>
 <%= f.label :resolve, "Status" %>
 <%= f.select :resolve, [["Unresolved", "false"], ["Resolved", "true"]], class: 'form-select' %>
<% end %>

boolean型とrailsのform_withは相性がいいらしく、rails側でfalse or trueを判別してくれるみたいです。

引用元 Ruby on Railsガイド

Railsをやり始めて4ヶ月ほど経ち、その間railsチュートリアルもやりました。
今回初めてRailsガイドを参照しましたが、こういったリファレンスも読めるようになったらいいものが作れると思うので、めげずに続けます。

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?