tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

2021-01-01から1年間の記事一覧

【swagger】書き方

以下サイト参考になる。 https://garafu.blogspot.com/2020/05/how-to-use-oas.html

【API】URI設計

リソース名には名詞を使う。 動詞は使わない。 HTTPメソッドが動詞の部分を担っているから。

API URIで使用されるv1の意味

v1はバージョン1を表している。 APIは違うバージョンのエンドポイントを共存させることがあるからそれを表している。 参考 https://qiita.com/NagaokaKenichi/items/6298eb8960570c7ad2e9

【ruby】| ビット演算子 で配列の重複を削除

| を使うと配列間の重複を取り除ける。 [1] pry(main)> [1,2,3,1]|[2,3,88,4,4,6,7,23,41] #=> [1, 2, 3, 88, 4, 6, 7, 23, 41] 参考 https://techracho.bpsinc.jp/hachi8833/2014_05_04/17084

【ruby】| ビット演算子 で配列の重複を削除

| を使うと配列間の重複を取り除ける。 [1] pry(main)> [1,2,3,1]|[2,3,88,4,4,6,7,23,41] #=> [1, 2, 3, 88, 4, 6, 7, 23, 41] 参考 https://techracho.bpsinc.jp/hachi8833/2014_05_04/17084

【Linux】マウントについて

マウントとは Linuxのディレクトリ構造は、「/(ルートディレクトリ)」とよばれる一番上のディレクトリからはじまるツリー状の構造になっています。 記憶装置をコンピュータへ接続した場合、その記憶装置をこのツリー状のディレクトリ構造のどこかのディレ…

【Linux】pvscanコマンド

LVMで使用する物理ボリュームを一覧表示するコマンド。 「-n」オプションを付けると、ボリュームグループに属していない物理ボリュームだけを表示できる。 参考 https://atmarkit.itmedia.co.jp/ait/articles/1911/21/news016.html

【Linux】パーティション

ハードディスクを論理的に分割した領域。 ハードディスクをパーティションに分割した場合、各パーティションを操作するためのデバイスファイルも自動的に作成される。パーティションのデバイスファイル名はハードディスクの何番目のパーティションなのかを示…

【Linux】デバイスファイル

検出したハードディスクを操作するためのファイルをデバイスファイルという。Linuxでは/dev以下にファイルが作成される。 参考 https://qiita.com/kakkie/items/8f960f2dc5eb6e591d9d

【Linux】ファイルシステム tmpfs

linuxで使える一時的にデータを格納するために使えるファイルシステム 参考 https://qiita.com/miyuki_samitani/items/0c14f7128b570e8c8b14

【Linux】dfコマンド

ファイルシステムのディスクの使用状況を表示するコマンド。 ファイルシステムとは「ファイルをとり扱うための枠組みと方法」 OSはあらゆる情報をファイルで管理している。ディスクに入っているデータをファイルという形で管理する為の機能。 参考 https://c…

user-agentとは

HTTPリクエストのヘッダー部分に記述される情報で、端末やwebブラウザの情報が含まれている。 例 "Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1" 参考 https…

【ruby】ダブルコロンの意味

基本的に名前空間解決演算子だが以下の1.2の使い方もある。 メソッドを呼び出す為 user = User.new # 以下は同じ意味 user.name user::name 定数の呼び出し class User ID = 123 end User::ID => 123 Rubyの名前空間を絶対パスで指定する module Member clas…

【rails】erbファイルのコメントアウト

rubyのコードを埋め込んんだ際のコメントアウトでは動作してしまう。 <%# xxx %>の場合は動作しない。

【rails】decorator

helperはモデルから独立し直接関係していない描画ロジックを実装するのに用います。 それに対してDecoratorは特定のモデルにがっつり関連した描画ロジックを実装するのに用いる 参考 https://qiita.com/jonson29/items/00077b54bb91ed74fdb8

【ruby】要素代入変数

def engine=(engine) self.engine = engine # 以下他の処理 end bm = Car.new bm.engine = diesel ()とスペースは省略できるから bm.engine = diesel と bm.engine=(diesel) は同じ 実際にengine=メソッドの中で代入処理を書く。 参考 https://ztbuz.hateblo…

【rails】tinyint型のpresenceバリデーション

mysqlでtinyint型のカラムを定義している場合それに対応するモデルの属性にpresence: trueのバリデーションをかけるとインスタンスが生成できない。 validates :result, inclusion: { in: [true, false] } このようにinclusionオプションを使う。

【rails】decorator

コントローラでインスタンスに対してdecorateをつけるとDecoratorファイルに定義されたメソッドが呼び出すことができるようになります。 class UsersController < ApplicationController def show @user = User.find(params[:id]).decorate end end 参考 htt…

【ruby】エラー処理 e.backtrace

begin user.save! rescue => e puts e.backtrace end このような感じでエラーが発生した場所を呼び出すことができる backtrace.rb:2:in `/' - 例外が発生した処理(backtrace.rbの2行目) backtrace.rb:2:in `<main>' - 例外が発生した場所(backtrace.rbの2行目) 参考</main>…

【ruby】エラー処理 rescue

すべてのStandardErrorとそのサブクラスを捕捉したい場合はrescue節のStandardErrorを省略できる。 以下は同じ挙動になる。 begin user.save! rescue StandardError => e logger.debug e end begin user.save! rescue => e logger.debug e end 参考 https://…

【rails】scopeの検索条件でnilが返る場合

scopeを使って結果がnilになった場合該当のscopeを除外したクエリを発行する為nilではなく必ずActiveRecord::Relationが返る。 注意が必要 Book.find_by(title: "rails") =>nil scope :find_book, ->(name) { find_by(tile: name) } Book.find_book("rails")…

【rails】enum before_type_cast

DBに保存されている値を確認するには book = Book.find(1) book.カラム名_before_type_cast で確認できる

【rails】tinyintとtrue false

tinyint型のカラムを条件で使う時はtrue,falseで指定しないといけない。 delete_flagがtinyint型の場合 # DBのdelete_flagの値が0の場合でもfalseになる # rails側で判定する場合はtrueとfalseにする必要がある # 不可 user.delete_flag == 0 # 可能 user.de…

【Linux】時間設定

linuxの時刻管理法2種類 システムクロック → OSが管理する時刻。date、またはtimedatectlコマンドで設定する。 ハードウェアクロック → マザーボードに実装されている時刻。hwclockコマンドで設定する。 システムクロックはOSで管理されていますが、メモリ上…

【mysql】時間設定について

time_zoneとsystem_time_zoneがある →この違いは? system_time_zone ホストマシンのタイムゾーンです。 サーバ起動時にホストマシンのタイムゾーンを特定して、system_time_zone システム変数に設定されます。 time_zone MySQLサーバの現在のタイムゾーンで…

【mysql】mysql 再起動 CentOS6

sudo service mysqld restart

【ruby】rubocop ファイル指定

ファイルパスやディレクトリを指定できる。 -aオプションで自動修正してくれる。 bundle exec rubocop [ファイルパス] -a 参考 https://kasaharu.hatenablog.com/entry/20171112/1510486904

【vagrant】vagrant reload

mysqlへのポートフォワードがうまくいっていない時はvagrant reloadを実行するとうまくいった。 まずmysqlが起動しているか確認。

【rails】ヘルパーメソッドにdata属性を埋め込む

data属性をハッシュで定義する content_tag :a, :href => "#", data: {user: "#{user}" }, do "変更" end 参考 http://ja.uwenku.com/question/p-ktowekvr-cm.html

【mysql】複合ユニーク制約

CREATE TABLE example( column1 SERIAL PRIMARY KEY, column2 INTEGER NOT NULL, column3 INTEGER NOT NULL, UNIQUE ( column2, column3 ) ); column2, column3の複合インデックスが作成される。 複合インデックスに使うカラムにはnot null制約をかけないと…