2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

30分記事<2025/02/19>

Posted at

1.はじめに

・この記事は記載者の自己満足による物です。
・30分で完全に切り上げるために、完全に途中で切れても終わります!笑
(このはじめにを書くのは毎回テンプレとし、このコピペの時間帯は時間に入れないものとする。)
・間違えている可能性あり!!!あまりこの記事信用しないほうがいい気がする!笑

2.なんで始めようと思ったか?

・「時間がないから記事が書けない」を言い訳に書いていなかった自分を律するため
・「意味もない記事でもいいから30分で書いて、書く練習をしてみよう!そうすりゃアウトプットにもなる」と思ったため。

内容がなくともとにかく書こう。

・いいんですよ。中身すっからかんでも。練習になりゃぁ。

ってことで2025/2/19からスタート!!

30分アウトプット開始

ひとまず間違っていようがとにかく記載。

・・・さて何書こう? →今日の勉強の一部を書くか。
db/migrate/YYYYMMDDhhmmss_create_xxxx.rb に書いてある内容を復習。それしか思いつかん。

どう書くかなーとか思ってたらそれだけで時間が数分かかりそうなので、とにかくアウトプット。

class CreateXxxxxs < ActiveRecord::Migration[5.2]
  def change
    create_table :users do |t|
      t.string :name, null: false
      t.string :crypted_password
      t.integer :role, default: 0
      t.timestamps
      t.datetime :deleted_at

      t.index :name
      t.index :deleted_at
    end
  end
class CreateYyyyyys < ActiveRecord::Migration[5.2]
      create_table :Yyyys do |t|
      t.string     :name,     null: false
      t.references :record,   null: false, polymorphic: true, index: false

      t.datetime :created_at, null: false

      t.index [ :record_type, :record_id, :name, :blob_id ], name: "index_active_storage_attachments_uniqueness", unique: true
    end
end

基本的にMigrateファイルを追加する場合の一つとして、
Classには「CreateXxxxxs < ActiveRecord::Migration[5.2] 」となり、
テーブル名が「Xxxxxs」になる。(Yyyyy)も同じ。

その下には「def change」があり、
「create_table :users do |t| 」で「users」とするテーブルを作成し、tという名前に省略するよ。と言った意味で書いてある。

基本的には
「t.xxxxx :カラム名, 条件」で記載していく。

xxxxxに当たる部分を書いていくと、
string :文字列
text :文字列(stringより、より多くの文字列を記載可能。詳細は割愛)
integer :整数(32bit 2の31乗 ※頭の01は正負を表す 4桁の頭で言うと→「0」000)
bigint :整数(32bit 2の63乗 ※頭の01は正負を表す 4桁の頭で言うと→「0」000)
datetime :日付
references :1対多で、このテーブルが多の時に使う。上記のコードだとt.references :recordだね。

別枠)
index :stringとかで設定したカラムを検索しやすく並べ替える。そのため検索しやすくしてくれる。

やばい残り15分。早いw

:カラム名 に当たる部分を書いていくと

基本的には3種類と考えていいかも?(コレで固めるのは頭硬いかもしれんけど)-
1 ::カラム名
(もうそのまんま。上にある「:name」とか「:role」とか。データベースに登録されるのもそのまんまと考えていいと思っている)

2 :t.referencesの場合。上にある「:record」とか「:blob」とか。
(
 ・このファイルに書くときは特に気にしなくてもいい。
 ・実際にこいつは、書いてあるrecordやblobってやつのテーブルから情報を持ってくるにあたって、そのテーブル情報のIDを持ってきている。そのため、ER図やデータベースで保存されるときは、基本的にinteger(数字)で登録されている認識。
 ・問題は、ER図に書くときやカラムに登録された時のカラム名は「Xxxxxx_id」と後ろに「_id」がつく。
)

3 :t.references :カラム名, の後にくる「polymorphic: true」
 ・こいつが入る行を見る。
  t.references :record,   null: false, polymorphic: true, index: false

  →作られるカラムは「record_id」と「record_type」の2つ。
   ポリモーフィックと呼ばれるやつで使うやつらしいけど、そこまではわからず。
   とにかくこの二つを出すんだなーと。
   (なんか1対多で相手のテーブルが1、自分が多、そのテーブルが複数あるのに関係あるっぽい?
    とにかく引き続き勉強だー)

と言ったところかな。

最後に
def up:テーブル作成、カラム作成
def down:ロールバック用の削除するメソッド。

ここまで30分。しゅうりょーーーーーー

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?