最近覚えたものを忘れないように大変雑にまとめていく

#テスト

assert系 →  予期した結果

refute系    → 「〜にならないこと」

 

#FakerでDB上にサンプルUserを生成する

99.times do |n|

 name = Faker::Name.name

 email = "example-#{n+1}@rails.jp"

 password = "password"

 User.create!(

 name: name,

 email: email,

 password: password,

 password_confirmation: password

 ) 

end

 $rake db:migrate:reset

$rake db:seed

でおk。

 

#toggle!メソッド

user.toggle!(:admin)

→ admin属性の状態をfalseからtrueにする

 

#

if !user_signed_in?は

unless user_signed_in?

if not user_signed_in? (推奨されていないらしい)

とも書ける

 

#

'aria-haspopup' => 'true', 'aria-expanded' => 'false'は

aria: { haspopup: true, expanded: false}

と代替できる。(後者の方がスッキリする)

 

#三項演算子

条件式 ? 真の値 : 偽の値

以下と同義

if @user.nil?

  真の値

else

  偽の値

end

 

# sessionのフォーム

= form_for(:session, url: login_path) do |f|

sessionはインスタンスを持たないため、リソースとそれに対応するURLを指定する

 

#クッキーとは情報を保存するもの

 

#sessionとは接続〜切断までの一連の流れ

ログインをnewとcreate

ログアウトはdestroyを用いている

 

#password_digestとは

ユーザの入力したpasswordをそのまま保存するのは危険! ので、passwordを暗号化するもの

migrationファイルの例

def change

 add_column :users, :password_digest, :string

end

 

# DBでmysqlを扱う方法

$ rails new sample_app -d mysql

gem に mysql追加(version指定しないとほぼ落ちる)

$ rake db:create

$ rake db:migrate

これでおk。

 

$ rails db

> show tables;

> select * from users;

> desc users;

> exit

みたいな感じ

 

#git でsshのキーチェーンの設定方法

$ ssh -T git@github.com

赤文字がキーチェーンとなる

clone などする際には

$ git clone  git@github.com:example/example.git

とする。(:の前までがキーチェーンの範囲)

 

 

#メタプログラミング(黒魔術)とは 

Rubyの最大の特徴で、簡単に言うとコードを生成するコードのこと”(かなり奥が深いらしい、抽象的な記法を使ってコードを書くことにより動的にコードを生成する。)

一見コードをみただけでは何を書いてるのかわからないもの、ターミナル上で引数などを指定し、実行されるまで何が出力されるかわからないもの。

 

#低レベルな知識

コンピューターに近いものの知識らしい(Linuxなど)、高レベルな知識は人間に近いものらしい。低レベルな知識によって技術者の差が出る。

 

#grep コマンド (ask-grep)

- ファイルや標準入力から正規表現でマッチする行を探し出すコマンド

- ログファイルの中から特定のログを探し出したり、ソースコードのあるディレクトリで特定のクラス、メソドなどを定義、呼び出しているところを探したりいろいろな目的で使う.

ex) grep "sample" sample.txt

=> sample

 

# 複合キー

複数項目で1セットな主キー

gem ' composite_primary_keys '

例)reservationsに複合キーを持たせる(user_idとevent_idで)

 reservationのmigrationファイル

def change

  create_table :reservations, id: false do |t|

    t.integer :user_id

    t.integer :event_id

    t.timestamps null: false

  end

  execute 'ALTER TABLE reservations ADD PRIMARY KEY (user_id, event_id);'

end

 

その後

$ rake db:migrate(ここで結構エラー出ます、大体がmigrationファイルでだぶってたりするのが原因なので削除したりして作り直したりしました。)

 

mysql> desc reservations;

        +------------+----------+------+-----+---------+-------+

        | Field      | Type     | Null | Key | Default | Extra |

        +------------+----------+------+-----+---------+-------+

        | user_id    | int(11)  | NO   | PRI | NULL    |       |

        | event_id   | int(11)  | NO   | PRI | NULL    |       |

        | created_at | datetime | NO   |     | NULL    |       |

        | updated_at | datetime | NO   |     | NULL    |       |

        +------------+----------+------+-----+---------+-------+

のようにuser_idとevent_idの2つがprimary keyとなる

 

参考

qiita.com

qiita.com

 

シンタックスシュガーについて

qiita.com