カクカクしかじか

技術的なアレコレ

エラー解決

型定義されたnpmパッケージをインストールしてもエディタ上で型定義ファイルが読み込まれない場合の解決法と残った謎

起こったこと qrcode というnpmパッケージを型定義パッケージと一緒にインストール。 $ npm install --save @types/qrcode $ npm install --save qrcode しかし、VSCode上では import { toDataURL } from "qrcode"; の 部分のモジュールが見つからないという…

Railsの部分テンプレート(partial)内でローカル変数が存在するか判定する方法

概要 複数のメールテンプレート内で読み込まれる部分テンプレート(partial)の内部に、一部のテンプレートから呼ばれる時だけ locals: { requested_date: @requested_date } のように渡されるローカル変数を定義すると、別の箇所ではその値を渡さないで呼び出…

Nuxt.jsのバージョンがnuxt@2.15.2とnuxt@2.15.4でbuildModulesで指定したプラグインの探索の仕方が変わった?

概要 Nuxt.jsで新規作成したアプリ( nuxt@2.15.4 )で Composition API を利用しようとして、 nuxt.config.js に以下のようにプラグインとして追加したところ以下のエラーが... buildModules: [ '@nuxtjs/composition-api' ], ✖ Nuxt Fatal Error │ │ │ │ Err…

.node-version がないとnpmコマンドが反応しない?

概要 塩漬けになっていた古いVue.jsのプロジェクトをいじろうと思い、ローカルにcloneした時のこと... あれ? npm run start を打ってもターミナルが一向に反応しないぞ?... 他のプロジェクトで同じようにコマンドを打つとすぐローカルサーバーが立ち上がっ…

gem内部のクラス名とアプリケーション内のクラス名が衝突した際の名前付けの教訓

経緯 とある機能の改修で連携先のシステムが公式に提供しているgemを使わねばならず、そのgemを追加したところ変なところでテストが落ちるようになりました そのgemを追加したことが原因であることは明白だったのですが、どこが悪さをしているかの全くわから…

webpackerでCSSのコンパイルがうまくいかない場合の解決法

発生事象 webpackerのgemのバージョンを上げて本番リリースした際に不具合が発生し、revertしてgemのバージョンを戻したところローカルではそれまで正常にコンパイルされてたCSSが正常にコンパイルされなくなってしまいました... なお、エラー文言をメモしそ…

CircleCI上でPG::ConnectionBad: could not traslate host name "db" to address: Name or service not knownが起こった時に確認したこと

発生した事象 CircleCI上でRSpecを実行するための前準備として bundle exec rails db:create を行う場面で PG::ConnectionBad のエラーが発生してしまっていました。 結論 database.ymlとconfig.ymlの設定内容を確認しましょう。 今回の場合で言うとdatabase…

mongoidのModel.where(field: { '$exists' => true }はフィールドが存在したら無条件で値を取ってきてしまうのでnilチェックされないという落とし穴

前提 BlogモデルとUserモデルがある BlogはUserにbelogs_toの関係 Blogのデータに対してUserが存在するデータだけを検索したい場合 落とし穴 mongoidの Blog.where(user: { '$exists' => true } は フィールドが存在したら無条件で値を取ってきてしまうので…

bundle installでAn error occurred while installing nokogiri (1.9.1)になった場合の解決法

nokogiriのインストールで死ぬ問題 とあるアプリでbundle installしようとしたところ... $ bundle install --path vendor/bundle <中略> Fetching nokogiri 1.9.1 Installing nokogiri 1.9.1 with native extensions Gem::Ext::BuildError: ERROR: Failed to…

Dockerのミドルウェア(DB)のバージョンを上げた時にデータベースに接続出来なくなる場合の雑な解決法

前提 Docker for Macを使用している RailsアプリのミドルウェアだけをDocker化している /provisioningディレクトリを作り、そこにdocker-compose.ymlを配置している dockerコマンドはdocker-compose.ymlを配置したディレクトリで実行 概要 Dockerを使って起…

brew updateの影響でreadlineに依存してるgemとtigが壊れた場合の解決法

発生エラー brewで最新のmondodbをインストールするために brew update を行った後 rails console を実行したら今回のエラーが発生しました。 $ bundle exec rails c /Users/shigeyukifukuda/.rbenv/versions/2.3.8/lib/ruby/2.3.0/irb/completion.rb:10:in …

mongoidはデフォルトだとモデルにcreated_atとupdated_atが存在しないので追加する方法

問題 Railsでmongoidを使用した場合、デフォルトのままだと当たり前にあると思いがちな created_at と updated_at が存在しないモデルが生まれます。 今回はこれの追加方法について触れてみます。 解決法 モデルのファイルに include Mongoid::Timestamps を…

Docker環境のmongoidを使ったRailsアプリでDBに接続出来ないときの解決法

経緯 現場Railsのタスク管理アプリをDocker環境+mongoidで作っていて、タスクの保存画面を作成していたところ、タスクのcreateでエラーに遭遇しました。 発生したエラー Docker環境上でRailsのDB(MongoDB)に接続出来てなさそう... 発生環境 Docker for Mac …

Ubuntu18.04で@(アット)\(バックスラッシュ)|(パイプ)が使えない問題の対処法

問題 USキーボードの状態でUbuntu日本語版を使用しているとデフォルトのままでは、USキーボードの本来のキー配列を正しく認識してくれないようです。 なので、パイプやアットマーク、バックスラッシュがそのままだと入力出来ません。 対象法 Ubuntuのターミ…

Docker環境でbetter_errorsを起動させるための設定

以下の記述を記載するだけ config/environments/development.rb if Rails.env.development? BetterErrors::Middleware.allow_ip! "0.0.0.0/0" end "0.0.0.0/0" ってなんだろう? docker-compose.yml でバインドしたIPのこと version: '3' services: web: bui…

Dockerが起動しないときの対処法

Dockerが起動しない... 解決法 Dockerのアプリの preference から 以下の画面の Restart をクリックする。 実施後 無事反応することを確認!

Vue.jsでformタグ内の@clickイベントから画面ロードなしでDOMを更新出来ない問題の解決法

問題の概要 Vue.jsの@clickイベントでサーバーサイドにPOSTして、正常に完了した場合に画面をロードせずに一部のDOMを更新して送信完了表示したい。 しかし、画面が送信前の画面に戻ってしまってDOM更新後の画面にならない!? サーバーサイドはステータス20…

Docker環境のRailsアプリでbootstrapに関わるnode.jsのコンパイルに失敗する問題の解決法

前提 現在、 現場Rails のタスク管理アプリをDocker環境かつMongoDBに置き換えて作っている状況です!(現場Railsの Chapter3 の部分に該当) 本の中のChapter3のbootstrapを入れて動かす部分で動作確認をしていると Autoprefixer doesn’t support Node v4.8.2.…

Dockerでコンテナ内にbundle installされない問題の解決法

前提 こちらの記事はDockerに対して不慣れな人間が書いているので、そらそうやろ!という内容が含まれます。 それでも個人用メモとして放流します。 技術要素 Rails 5.2.2.1 Ruby 2.5.1 mongodb 4.0.6 Dockerを扱うディレクトリ構成 アプリディレクトリ/ Gem…

Dockerコマンドが実行出来ない時の解決法

エラー内容 ターミナルからdockerコマンドを実行してもエラーが出てしまう... Docker engineが動いてない? 解決法 GUIで Docker for Mac を開いて preference から Reset to factory defaults を押下します。 結果 無事にコマンドが実行出来るようになりま…

Vue.jsのライフサイクル関数 created: 内ではthis.関数名()にしないと関数呼ばれないから気をつけてね!

要旨 Vue.jsにはDOMのライフサイクルごとに行いたい処理を定義しておくことが出来ます。なお、ライフサイクル関数は、Railsで言う before_action などのコールバックメソッドみたいなものです。 想定ケース 1. 画面を描画した時点でRailsのAPIを叩く 2. 取得…

RSpec : 時刻のテストではtravel_toしたら必ずtravel_backしてね

追記:2019.09.23 こちらの記事で記載があるようにRails 5.2系からtravel_backを明示的に書かなくてもよくなった模様... shinkufencer.hateblo.jp y-yagi.hatenablog.com 経緯:自分が出したプルリクだけ関係ないRSpecで落ちる ここ数日、自分が修正したプル…