arait-code’s RC

もうすぐエンジニア転職して2年になります。

javascriptで存在確認をして論理値を返す時の書き方

小ネタですが javascriptでたまにある パラメータが存在する場合はtrueを返す パラメータが存在しない場合はfalseを返す if (function_junction) return true return false みたいに書けますが return !!function_junction の様に書くことも可能です。 ビッ…

react nativeでmain.jsbundle does not exist. This must be a bug with React Native, please report it hereと出た時(ver0.70.4)

AppStoreに審査提出しようと思い product -> archiveをしたところ上記エラーが発生した。 react nativeのバージョンは0.69.5 -> 0.70.4にアップデートした後でした。 androidのビルドでhotfix(0.70.5)が出ていましたが弊社ではAndroid使っていないので関係な…

javascriptでif ~ else ~ で論理値を返す時の書き方

小ネタ たまに忘れてしまい、コードレビューでご指摘頂くので健忘録 javascriptである値が一致する場合はtrue、一致しない場合はfalseを返す時 let use = '' if (number === 1) { use = true } else { use = false } みたいに書いてしまうけど const use = n…

rubyのcompact!を使うときに覚えておきたいこと

compact!とは compact は自身から nil を取り除いた配列を生成して返します。 compact! は自身から破壊的に nil を取り除き、変更が行われた場合は self を、そうでなければ nil を返します。 docs.ruby-lang.org compact! はArrayに nil が含まれるかどうか…

railsのActiveRecordでandとorの複合条件の絞り込みをする時

railsのActiveRecordで AかつBorC(A and (B or C))の条件を満たす書き方のメモです。 結論: .mergeを使用する .where(条件A) .merge(モデル名.where(条件B).or(モデル名.where(条件c))) SQLを書いてしまった方が楽なのですがActiveRecordで書きたい場面が…

Rspecでsubjectを複数回実行する

失敗例 subjet subjet expect(~~) subjet expect { subject } 解答 subjectの実行内容の外側を.timesで囲む subject { 2.times { post :create, params: request_params } }

Redisで特定のキャッシュを削除する

原因 表示の際の負荷低減のためある情報をキャッシュしていたのですが 後に改修されたその情報のアップデートを行う際にキャッシュの削除が行われていなかったため 古い情報が表示されてしまっていた 対応 redisを動かしているサーバーに入り redis-cli うち…

Railsでの範囲ループ

日付での範囲指定ループ occurred_on = "2022-09-24" today = "2022-09-27" (occurred_on..today).each do |date| puts date end 出力 2022-09-24 2022-09-25 2022-09-26 2022-09-27 アルファベットでの範囲指定ループ ("a".."z").each do |char| puts char …

Mysql2::Error: Can't DROP ''; check that column/key existsが出た時

[状況] circle ciでridgepoleを使用してのデプロイでindexの張り替えをしたところ [ERROR] Mysql2::Error: Duplicate entry が発生してindex作成途中にビルドが失敗し rerunしたところタイトルのエラーが発生しました ## [原因] index作り直しの途中で失敗し…

Docker rails 環境でのcredentials:edit

今回書くのは下記の状態になってviが開かない場合です。 docker-compose run -e EDITOR="vim" web rails credentials:edit Starting photo-app_db_1 ... done New credentials encrypted and saved. 上記の様に表示されviが開かない場合viがコンテナにインス…

railsで生SQLをスッキリ使う方法

Railsで生SQLを使う方法と言えば ActiveRecord::Base.sanitize_sql_array を使用するかと思いますが頻繁に使用するためmoduleとして 切り出して使う方法を紹介します。 module Sanitizable def sanitize_sql(sql, placeholders) squish_sql = sql.split("*/"…

rails でバッチ処理を行いたい時

業務だと時々バッチ処理を行う機会があるので その方法をメモしておきます バッチ処理とは ひとまとまりのデータに一括で処理を行うこと どんな時に行う 途中でロジック変更などを行った際に、バッチ処理を行い既にデータベースなどに保存されているデータを…

rails mysqlでgroupとorderを同時にしたい時

環境 やりたかったこと 結論 テーブル構成 失敗ケース: 普通にorderとgroupをメソッドチェーンで繋ぐ サブクエリでやる なぜ? 最終的な形 サブクエリでMAXなどを使う形でも取得出来る 環境 ruby 3.0.3p157 gem 'rails', '~> 6.1.0' gem 'mysql2', '>= 0.3.…