t.referencesとforeign_key: true

テーブルを作成する際、外部キー周りの設定でt.referencesとforeign_key: trueが何をしてくれるのか・してくれないのか曖昧だったので調べました。 t.references 参照モデル名_idというカラム名で参照モデルのidと紐付けてくれる これだけだと参照にないidで…

where.not

アクティブレコードのwhere.notを使った実装を考えていたのですが、 where.notが変換されるSQL(WHERE ~ NOT IN)にはINの引数にNILLである値が含まれていると何も取得できないという注意点があるようなので、where.notでもそうなの?!と思い試してみました。…

外部キー制約

外部キー制について考える機会があったのでメモしておきます〜 外部キー制約とは 外部キーは関連づけているテーブル間のデータの整合性を保つために存在する制約です。 外部キー制約を設定しておくと、存在しないidで外部キーを保存する事ができなくなります…

横スワイプで画面が戻らないようにする

ブラウザで横スワイプで画面が戻ってしまうのが不便だと感じておりました。 ただ横にスクロールして見えてない部分を確認しているだけなのに、横にスワイプとみなされて戻ってしまう事が結構ストレスでした。 (特にGitHubのコメント欄でコードが横長になって…

&、-、select、reject

今日使ったArrayクラスのメソッドについてメモしておきます。 何回も使ったことあるのにいつも記憶が曖昧で調べている気がしますw & 複数の配列を比較して重複してる値を返してくれます。 [1,2,3,4,5,] & [2,3,4,7] => [2,3,4] - 2つの配列を比較し、前者の…

文字集合と符号化方式

文字コードの構成要素には、文字集合、符号化方式の2つがある事を昨日知りました。なので今日は文字集合、符号化方式について調べました。 文字集合とは 表現できる文字の集合です。 符号化方式とは 文字をコンピュータ上でどういった数値で表現するかを定…

文字コード

今日は文字コードについて少し調べました〜 文字コードとは 文字に数値を当てはめたものです。 文字コードの種類 ASCII アルファベット、数字、その他記号を表現できる。7ビットで1文字を表現できる。 Shift_JIS 1文字2バイトで表現されます。 ASCIIで表現で…

アクティブレコードでのトランザクション

昨日はSQLでのトランザクションについて書いたので、 今日はアクティブレコードでのトランザクションについて調べてみました! 書き方 以下のように書くことができます。 ① モデル.transaction do ② DBに変更を加える(updateやdeleteなど)③ end④ 上手くいっ…

トランザクション

トランザクションが何かということは書籍や記事を読んで知っていたのですが、先日初めて業務で使う機会があったのでメモしておこうと思います! トランザクションとは 一連のまとまった処理のことです。 処理の途中までしか実行されなかったらまずい処理など…

HTMLで入れ子のリスト

マークダウンでよくあるような入れ子のリストをHTMLで作りたかったのですが、以下のやり方では上手くいきませんでした。 <ul> <li>リスト</li> <ul> <li>入れ子リスト</li> <li>入れ子リスト</li> </ul></ul> 調べてみたところ、以下のように親となるリストの閉じタグを入れ子リストの後に書かなくてはいけ…

サブクエリとJOIN

サブクエリとJOINどちらでもデータ取得できることあるよな、比べてみよう、と思い比較してみました。 以下はどちらもeventsテーブルのidが1であるものと関連するpetsレコードを取得しています。 JOIN select * from pets join events on pets.name=events.na…

AS句

SQLを調べていると度々出てくるAS句について、なんとなくの理解だったので今回調べることにしました。 AS句とは カラムに対して別の名前をつけることができる句です。 元々テーブルにあるカラム対しても、計算結果を表すカラムに対しても名前を付けることが…

サブクエリ

以前から気になっていたサブクエリについて調べました〜 サブクエリとは SELECT文の引数にまたSELECT文が渡されるようなクエリのことです。 例 SELECT * FROM events WHERE id in (1,3,5,7); このようにin句で絞り込むSELECT文があるとします。 このidの配列…

cloud watchからログを検索する

cloud watchの存在ははなんとなく知っておりましたがあまり触れたことがありませんでした。 本日cloud watchからログを検索する作業をしたのでその手順をメモしておく&cloud watchが何なのか調べることにしました。 cloud watchとは awsが提供してくれている…

quick time playerでPCの音のみを録音する

quick time playerでPCの音のみを録音したかったのですが、内臓マイクしか選択できず、外部の音も拾われてしまい困っておりました。 quick time playerでPCの音のみを拾わせる方法についてメモしておきます! 方法 sound flowerという仮想オーディオデバイス…

SQLの実行される順番

先日、HAVING構文について調べた時、条件を指定するのはWHEREと同じですが、実行される順番が違うと知りました。 そこでSQLの実行される順番について興味が湧いたので調べてみました! SQLの実行される順番 FROM(テーブルを指定) ON(テーブル結合の条件を指…

アイビスペイント

なんのお絵かきツールがいいかといくつか試したり調べたりしていたところ、アイビスペイントがいいと聞いたので使ってみております! 噂通り、ものすごく多機能で良さそうなのですが、ツールが多くまだ触ったことのないものも多数あります。 そこで公式の使…

GROUP BYとHAVING

なんとなくの理解だったGROUP BYとHAVINGについて調べました〜 GROUP BYとは データをグループ化する関数です。 使い方 GROUP BY カラム名 とする事で、カラムの値が同じものをグループ化してくれます。 以下のようなreviewsテーブルがあるとします。 gyazo.…

shallow: true オプション

ルーティングファイル内でshallow: trueオプションを見かけることはあったのですが、何者なのかよく分かっていなかったので調べました! shallow: true オプションとは ネストしたパスを作る際にshallow: trueオプションを付けることで、 show/edit/update/d…

working copyの使い方模索

一昨日、gitを使えるアプリworking copyをiPad に入れたのですが、まだ余り使い方が分かっていないので使い方を模索してみました〜 clone、ブランチ切り替え、コミット確認 左上のプラスボタンを押すと自分がアクセスできるリポジトリ一覧が出てきます。 そ…

自分にアサインされているissue一覧表示

複数リポジトリのissueに自分がアサインされている時、把握するのが大変でした。 しかしそれを一覧で確認できることを今日知りました。。。!! やり方は以下の通りです。 gyazo.com githubのヘルプドキュメントに一通り目を通しておくと色んな便利機能を知…

iPadを買った!!

iPad、Apple Pencil、Smart Keybordを買いました!! 目的はお絵かきだったのですが、どうやらRubyの開発環境も整えられると知り、必要なアプリを入れてみました〜!! Gitを使うアプリ Gitを使うためにWorking Copyというアプリを入れました! Working Copy…

includesの挙動模索

普段、N+1問題を防ぐためにとりあえずincludesをしてしまうのですが、includesがどんな挙動をしているのか理解していなかったので調べることにしました! (昨日からActiveRecord読みたい気持ちが高まっていたため、includesのソースコードを読むことに挑戦し…

銀座Railsへ行った

銀座Railsへ行って、Railsコミッターの@kamipoさんと@yahondaさんのセッションをお聞きしてきました! Active Recordの難しい話もありましたが、お話が面白かったので分からないなりにも楽しむことができました!! 自分もすぐに取り入れていこうと思った内…

SQLの集合関数

SQLの集合関数についてしらべました〜 集合関数とは SQLにもとから用意されている関数です。 集合関数の種類 以下の5種類の関数があります。 COUNT:総数を取得 SUM:総和を取得 MAX:最大値を取得 MIN:最小値を取得 AVG:平均を取得 使い方 以下のようなre…

エスケープ文字

「%」や「_」をワイルドカードとしてではなく文字列として検索したいときに使用するエスケープ文字 エスケープ文字とは 「\」です。 「%」や「_」をワイルドカードとしてではなく文字列として検索したいときに使用します。 例:以下のようなeventsテーブル…

LIKE句

SQLのLIKE句について調べました。 LIKE句とは 完全一致だけでなく部分一致、前方一致、後方一致など曖昧な条件を指定できる構文です。 前提 以下のようなeventsテーブルがあるとします。 id name date description 1 Whistler 1999-11-09 Went hiking. 2 Puf…

IN句

以前から理解したいと思っていたIN句について調べました〜 IN句とは 一致するかの条件をまとめて判断出来るSQLの構文です。 具体例 以下のようなeventsテーブルを操作するとします。 id name date description 1 Whistler 1999-11-09 Went hiking. 2 Puffbal…

SQLの比較演算子

WHEREで条件を指定する際に必要となる比較演算子について調べました〜。 比較演算子 SQLの比較演算子には以下のものがあります。 a = b (a と b は等しい) a <=> b (a と b は等しい) a != b (a と b は等しくない) a <> b (a と b は等しくない) a < b (a …

テーブルの結合(join)

昨日、結合(join)について理解しきれないままだったので続きを調べました。 結合(join)の種類 以下の5種類があります。 INNER JOIN (内部結合) LEFT (OUTER) JOIN (左外部結合) RIGHT (OUTER) JOIN (右外部結合) FULL (OUTER) JOIN (完全外部結合) …