RailsのArrayの拡張メソッド「inquiry」

こんにちは!kossyです! さて、今回はRailsのArrayの拡張メソッドであるinquiryの使い方について、ブログに残してみたいと思います。 使い方 pets = [:cat, :dog].inquiry pets.cat? # => true pets.ferret? # => false pets.any?(:cat, :ferret) # => true…

Rubyの標準モジュール「NKF」で全角英数字を半角に変換する

こんにちは!kossyです! さて、今回はRubyの標準モジュールである「NKF」を用いて、 全角英数字や全角スペースを半角に変換する方法をブログに残してみたいと思います。 環境 Rails 6.0.2.1 Ruby 2.5.1 MacOS Mojave 方法 こんな感じのCSVファイルがあった…

rails r でターミナルからRailsのコードを実行する

こんにちは!kossyです! さて、今回はrails r コマンドでターミナルからRailsのコードを実行する時のTIPSをご紹介できればと思います。 環境 Rails 6.0.2.1 Ruby 2.5.1 MacOS Mojave クラスの継承順位を出力する 例えばRailsアプリケーションにBookモデルが…

Rubyのnet/httpsでGoogleBooksAPIを叩いてみる

こんにちは!kossyです! さて、今回はRubyの標準モジュールであるnet/httpsを使って、 GoogleBooksAPIを使う方法について、ブログに残してみたいと思います。環境 Ruby 2.6.3 Rails 6.0.2.1 MacOS Mojave GoogleBooksAPIから返却されるJSONを見てみる 下記…

ActiveRecordのfindとArrayのfind

こんにちは!kossyです! さて、今回はActiveRecordのfindとArrayのfindがどのようにして挙動を切り替えているか、 気になったので調べてみました。 ブロックの有無で分岐していた # activerecord/lib/active_record/relation/finder_methods.rb def find(*a…

ubuntu環境の日本語化

こんにちは!kossyです! さて、今回はvirtualbox + vagrant でubuntu環境を構築する際に、出力を日本語化する手順について、 ブログに残してみたいと思います。 なお、virtualbox + vagrant のダウンロードについては割愛します。 実行手順 まずはbox add …

キャメルケースの文字列をスネークケースに変換するActive Support::Inflectorの「underscore」メソッド

こんにちは!kossyです! さて、今回はキャメルケースの文字列をスネークケースに変換する「underscore」というメソッドの使い方を ブログに残してみたいと思います。 Active Support::Inflectorってなに? ActiveSupport::Inflector によると、 The Inflect…

Railsのenumで定義したシンボルを元に文字列を返すメソッドを定義する

こんにちは!kossyです! さて、今回はRailsのenumで定義したシンボルを元に文字列を返すメソッドを定義したいと思います。 enumの詳しい説明は割愛します。 実装方法 class User enum role: [:general, :admin] end Userクラスがroleというカラムを持ってい…

ng-container で不要なタグを出力するのを防ぐ

こんにちは!kossyです! さて、今回はAngularのディレクティブの一つであるng-containerの使い方について、 ブログに残してみたいと思います。 ng-containerってなに? Angular日本語ガイドによると、 は Angular パーサーによって認識される構文要素です。…

実務に入る前に知りたかったRails周りのことをまとめてみる

アプリケーションの設計について ・Rails API mode について Rails による API 専用アプリケーション - Railsガイド Rails5とAPIモードについての解説・エラーハンドリングについて Railsアプリケーションにおけるエラー処理(例外設計)の考え方 - Qiita …

Railsのreponseのcache-controlを上書きする

こんにちは!kossyです! さて、今回はRailsでAPIを実装する際に、responseのcache-controlを上書きする方法について ブログに残してみたいと思います。 そもそもcache-controlってなに? Cache-Control 一般ヘッダーフィールドは、リクエストとレスポンスの…

EGPとIGP

こんにちは!kossyです! さて、今回はインターネットのルーティングプロトコルであるEGPとIGPについて、 ブログに残してみたいと思います。 ルーター同士で通信して情報をやりとりするための規約 インターネットの通信の仕組みには、指定したIPアドレスへの…

yield @variable if block_given? ってなに?

こんにちは!kossyです! さて、今回は、トークンベースの認証の仕組みを提供するgemであるdevise_token_authの コードリーディングをしていた時に書かれていたある構文について、ブログに残してみたいと思います。 yield @variable if block_given? なんだ…

Rubyの標準モジュール「securerandom」を使ってトークンを作ってみた

こんにちは!kossyです! さて、今回はRubyの標準モジュールである「securerandom」を使って、 トークンを作成する手順についてブログに残してみたいと思います。 環境 Ruby 2.5.1 Rails 5.2.3 MacOS Mojave libディレクトリにtoken_generator.rbを作成 トー…

Railsのvalidationでのlambdaの使い方

こんにちは!kossyです! さて、今回は、Railsのvalidationでのlambdaの使い方を ブログに残してみたいと思います。 後置ifでlambdaを渡す サンプルコードを晒してみます。 class User before_validation :name, presence: true if lambda { |obj| name.will…

DockerfileのENVとARGの違いとは?

こんにちは!kossyです! さて、今回はDockerfileを記述する際に用いられるインストラクションの一つである、 ENVとARGの違いについてブログに残してみたいと思います。 そもそもDockerとはなんぞや?という方は、 knowledge.sakura.ad.jp 上記のサイトが参…

Cloud Storageにアプリをデプロイする際に最新のコードがすぐに反映されるようにする

こんにちは!kossyです! さて、今回はGCPのCloud Storageにgsutilを使ってアプリケーションをデプロイする際に、 最新のコードがすぐに反映されるようにする方法を ブログに残してみたいと思います。 これやらないとデプロイしても最新のコードが反映されな…

Rubyのbegin-end構文で変数を定義する

こんにちは!kossyです! さて、今回はRubyのbegin-end構文で変数を定義する方法についてブログに残してみたいと思います。 begin-end構文とは?begin-endは例外処理でよく用いられるイメージですが、例外処理以外の用途でも使うことができるようです。What …

development_secret.txtってなんだ?

こんにちは!kossyです! さて、今回はRails 6 でアプリケーションを開発している時に見つけたテキストファイルである、 「./tmp/development_secret.txt」についてブログに残してみたいと思います。 dev環境およびテスト環境の場合にsecret_key_baseを生成…

docker の コンテナやイメージを一括削除する

こんにちは!kossyです! さて、今回はdockerのコンテナとイメージを一括削除するコマンドをブログに残してみたいと思います。 コンテナを一括削除するコマンドはこちらです。 $ docker ps -aq | xargs docker rm docker ps -ap で、停止中のコンテナも含め…

RailsのAPIモードでrespond_to を使うにはMimeRespondsをincludeする必要がある

こんにちは!kossyです! さて、今回は、RailsでAPIを作成する時にrespond_toを使いたい時はあるモジュールをincludeする必要があるという話をブログに残したいと思います。 環境 Rails 6.0.2.1(API only) Ruby 2.5.1 ApplicationController.rbにMimeRespond…

AngularのAppRoutingModuleのワイルドカード(**)は一番最後に指定すべし

こんにちは!kossyです! さて、今回はAngularのAppRoutingModuleのワイルドカード(**)は一番最後に指定すべし、という備忘録をブログに残したいと思います。 初歩的なミスをしてしまう自分を戒めようと思います。笑 const routes: Routes = [ { path: '', c…

date-fnsにlocaleを指定したい

こんにちは!kossyです! さて、今回はJavaScriptの日付を扱うライブラリであるdate-fnsでlocaleを指定してformatする方法について、 ブログに残してみたいと思います。 実装手順注意することは、jaのimportの文法くらいですね。import { ja } from 'date-fn…

TypeScriptでdate-fnsを使ってみた際に遭遇したAn argument for 'format' was not provided

こんにちは!kossyです! さて、今回は、JavaScriptの日付を扱うライブラリの一つである。date-fnsを少し触ってみたので、ブログに残してみたいと思います。 引数一つだと怒られるAngularのプロジェクト内で、 format(new Date()); というコードを記述したと…

Angular8のアプリケーションにbootstrapを導入する

こんにちは!kossyです! さて、今回はJavaScriptのフレームワークの一つであるAngularに、有名なCSSライブラリであるbootstrapを導入する手順を ブログに残してみたいと思います。 環境 MacOS Mojave Angular 8.0.6 TypeScript 3.4.5 Rxjs 6.4.0 AngularCLI…

基本情報技術者試験に合格しました

こんにちは!kossyです! 先週の日曜日に基本情報技術者試験(FE)を受けてきました。結果は、 自己採点の結果、合格です。 午前・午後共にギリギリ6割取れていました。勉強自体は3月ごろから始めていましたが、通勤の電車内で過去問を解いたり、 テキストを読…

SequelProでレコードを削除しても、dependent: :destroyしている先のレコードは消えないよ

こんにちは!kossyです! www.sequelpro.com 何を当たり前なことを、、、 といったタイトルですが、開発環境で実装している時に遭遇しました。笑 なぜ意味不明なデータが出現するんや!?!?!? と30minほど悩みましたが、SequelProでレコードを削除しても…

ポケモンのデータをDBで表現する

こんにちは!kossyです! 昨日、「ポケモンのデータをDBに保存する」 というブログを書いたのですが、肝心のDB定義を忘れていました。 class CreatePokemons < ActiveRecord::Migration[5.2] def change create_table :pokemons do |t| t.integer :number, n…

ポケモンのデータをDBに突っ込んでみた

こんにちは!kossyです! さて、今回はRailsとAngularの練習用に作ろうと模索しているポケモン図鑑APIの基になる、 ポケモンのマスタデータをDBにimportした時の備忘録をブログに残してみたいと思います。 環境 Rails 5.2.3 Ruby 2.5.1 MacOS Mojave マスタ…

RubyのRangeオブジェクトを使って、数値が指定した範囲内にあるかを調べる

こんにちは!kossyです! さて、今回はRubyでRangeオブジェクトを使って、ある数値がRangeオブジェクトの範囲内に含まれているかどうかを チェックするやり方をブログに残してみたいと思います。 環境 Ruby 2.5.1 実装先に実装を晒します。 # number は Poke…