危険なJSON出力を禁止するRuboCopカスタムルールの作成方法

背景 userの情報を返すAPIを実装する際、render json: user とするとuserモデルのすべてのフィールドを含むJSONを返してしまい危険です。パスワードはハッシュ化されているものの、deviseが提供するフィールドlast_sign_in_ip などクライアントに返してはな…

AWS CLI

インストール 公式サイトでインストーラーをダウンロードしてインストールしてください。 docs.aws.amazon.com 設定 基本的に以下の公式サイトに従うだけです。 docs.aws.amazon.com 公式サイトにも載っている内容ですが、以下のコマンドを入力して、 % aws …

schema.rbで差分が発生する事例とその復旧について

Railsには、スキーマファイルと呼ばれる schema.rb があります。 Railsガイドには Active Recordはマイグレーションの時系列に沿ってスキーマを更新する方法を知っているので、履歴のどの時点からでも最新バージョンのスキーマに更新できます。Active Record…

ngrokの導入

ngrokとは ngrok(エングロクと読む)は、httpのトンネリングサービスです。 ngrokでホストされるURL(例:http://xxxx.ngrok.io/ )へのアクセスをローカル環境のwebサーバー(http://localhost:3000 など)にトンネリングしてくれます。 例えば、stripeやL…

HerokuのStackの設定

Stackとは Herokuで稼働するサーバーのベースとするOSのバージョンのようなものです。 公式サイトを見ると分かりますが、Ubuntu Linuxのバージョン番号とStack名が揃えられているようです。 Stack関連のコマンド 使用中のStackを確認 以下で、Stackの確認が…

M1 Macでの開発環境構築(rosetta 無し)

はじめに この記事では、M1 Macでの開発環境構築でハマったところを共有するために、記載して行きます。今後、随時新しいハマりどころが発生した場合は、情報を追加していきます。 環境構築の前提 筆者の環境では、環境構築の検証もかねているので、Rosetta …

tmux + overmind を利用して、複数システムを1コマンドで起動できるよう設定する

はじめに 当社のRailsシステム間連携では、各システムで公開しているWeb APIを使っています。 今までは各システムを bin/rails s で起動し、開発を行ってきました。 ただ、 連携するシステムが増えたり、各システムで使うジョブワーカーが増えたりした結果、…