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?

More than 1 year has passed since last update.

【Ruby on rails】boolean型って便利!

Last updated at Posted at 2023-10-13

はじめに

プログラミングを勉強して2か月ほどです。
初心者なので間違っているところがあれば、ご指摘いただけると幸いです。

そもそもboolean型ってなに?

この型は、二つの値しか持たないことが特徴です。boolean型では、値を「真 (true)」または「偽 (false)」で表示します。真は通常1や真の値(true)、偽は通常0や偽の値(false)と表現されます。

boolean型の詳しい内容については、@mmaumtjgj(kamin_k)さんの記事で記載されています。
分かりやすく解説されているので、ぜひ読んでみてください。

boolean型を使ってできること

boolean型は上記の通り、「true」か「false」で表します。例えるなら、スイッチの「オン」と「オフ」同じような機能です。
この機能と条件分岐を組み合わせることで、見た目上でもスイッチのようにオンとオフを表すことができます。

それでは、実際にboolean型を使用して実装していきましょう!

Let's start!!!

マイグレーションファイルの記述

2023xxxxxx_create_items.rb
class CreateItems < ActiveRecord::Migration[7.0]
  
   def change
     create_table :items do |t|
      t.boolean :switch, default: false, null: false

      t.timestamps
     end
   end

end

※今回はswitchというカラム名にしました。

default: falseという記述が重要です。
この記述をすることで、テーブルに保存される時に「false(0)」で保存されます。

コントローラーへの記述

items.controller.rb
class ItemsController < ApplicationController
  
  def use
    @item = Item.find(params[:item_id])
    @item.update(switch: true)
    redirect_to root_path
  end

  def back
    @item = Item.find(params[:item_id])
    @item.update(switch: false)
    redirect_to root_path
  end

end

今回はuseとbackというアクションを使って「オン」と「オフ」を表現していきます。
@item.update(switch: true)
上記の記述はswitchカラムをtrueにするという記述です。
useアクションが実行された時にtrueに変わります。

ビューへの記述

items/index.html.erb
<% if item.switch == true %>
    <div class='switch-on'>
      <span>オン</span>
    </div>
<% end %>

<% if item.switch == true %>
上記の記述は、itemのswitchカラムがtrueだったらという記述です。
この条件分岐を使うことで「オン」の表示をすることができます。

終わりに

みなさん実装お疲れ様でした!
boolean型を使用しての実装は以上です。
分かりづらい点が多かったと思いますが、最後まで読んでいただきありがとうございました!!

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?