学習記録

2020-02-09に作成

個人用の学習記録。成果がなくとも毎日更新。

所有者限定モードのためこのボードには投稿できません ボードとは?

疑問:/dev/sda9ってどういう意味だろう。
答:SATA(SCSI) deviceの1番目のドライブの9番目のパーティション


シェルの操作でつまずいた点

フォアグラウンドのプロセスの実行中に間違えてCtrl+zを押した時(SIGTSTPシグナル)、「jobs」でジョブIDを確認し「fg %ジョブID」で戻せる。
参考:Ctrl+CとCtrl+Zやkillなどの挙動の違いを確認する

単にfgとすると最後に起動状態にあったjobsに戻る
%1の代わりにbashならfg 1でもOK

参考:みんなにもっとCtrl-z使ってもらって、実行中のjobをサスペンドしてCLIがちょっと楽になって欲しい (bash、Zsh)


Laravel From Scratch

Consider Named Routes

https://laracasts.com/series/laravel-6-from-scratch/episodes/28

routeのパスが変更されても編集が少なく済むように、named routeを使う。
named routeを使うには下記の記述を用いる。
- 定義はRoute::get('/hoge', 'hoge@hoge')->name('articles.show')
- パスを参照する時はroute('articles.show', $article)
- 上記の$articleのように「->id」を省略することもできる。

Reduce Duplication

https://laracasts.com/series/laravel-6-from-scratch/episodes/27

モデルの保存処理を短縮して書くには、createメソッドが利用できる。

Article::create(
    request()->validate([
            'title' => 'required',
            'excerpt' => 'required',
            'body' => 'required'
        ])
);

このままブラウザで登録処理を行うと、「allow mass assignment」というエラーが出る。
これを許可する方法として、モデルにfillable許可リストを書く方法とguardableブロックリストを書く方法がある。


Laravel From Scratch E9

https://laracasts.com/series/laravel-6-from-scratch/episodes/9

mysqlが実行できない(おま環)ので、sqliteを使う。
SQLite Configurationの章を参考

DB_CONNECTION=sqlite
DB_DATABASE=/Users/user_name/laravel/laravelapp/database/database.sqlite # 絶対パス
DB_FOREIGN_KEYS=true
# DB_DATABASEで任意のファイル名に変えられるのかと思ったがそうではないみたい。

Gitで退避

退避
$git stash
saveオプションを省略している

退避中のリスト
$git stash list

退避した作業を戻す
$git stash apply stash@{0} --index

参考

【git stash】コミットはせずに変更を退避したいとき


Cloud9のインスタンス作成に失敗して下記のエラーが出た。

  • This is taking longer than expected. The delay may be caused by high CPU usage in your environment, or your T2 or T3 instance is running out of burstable CPU capacity credits, or there are VPC configuration issues. Please check documentation.
  • Failed to create environments (Instance Name). Cloud9 could not connect to the EC2 instance. Please check your VPC configuration and network settings. Go to CloudFormation stack

下記は私の調査したこと。

  • Adblockを起動している。
  • 他のリージョンで同じ事象が生じるか。正しく動くものと比較し、VPCの設定にどのような差があるか確認する。私の場合はルートテーブルにインターネットゲートウェイの記述がなかった。

Ruby on Rails 6 実践ガイド

layoutメソッドって?

デフォルトではapplication.html.erbがレイアウトとして指定されている。
このメソッドを使うことで、(渡された文字列).html.erbなどのファイルに切り替えることができる。

参考

layoutメソッドについてまとめる!


Ruby

つまずいた点

hoge and next if conditionとは書けない。next hoge if conditionのように書く。

参考

How to use next with inject in ruby


Ruby on Rails 6 実践ガイド

application.rb

  • タイムゾーンの設定
    • config.time_zone = 'Tokyo'
  • 国際化のためのパス設定
    • config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
  • デフォルト言語を日本語に指定
    • config.i18n.default_locale = :ja

3.5.5BlockedHostsの設定

アクセスに使用できるホスト名を追加する。

config.hosts << 'example.com'

4.1.3RSpecの初期設定

  • example "OOの追加"や it "appends a OO"のような書き方がある。
  • # はインスタンスメソッドであることを表す。
  • 複数のエク斬プルを実行する場合、実行順序は決まっていない。
  • pendingメソッドとxexampleメソッドの2通りがある。

Ruby on Rails 6 実践ガイド

db:resetとdb:setupの違い

README.mdを読んでいてrails db:resetとrails db:setupの違いが気になったので、下記のリンクを参考にした。
rails db:reset、rails db:migrate:reset、rails db:setupの違い
- db:setupではcreate + schema:load+ seed
- db:migrate:reset と db:reset は異なる。
- ダミーデータが作られるかどうか。

参考

rake db:migrateとrake db:schema:loadの違い
- migrationファイルでなくschema.rbがベースになる


PaizaのB問をRubyで解いた時に調べたこと