箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

EC2インスタンスのホスト名を変えたい

AWS

先に結論から言ってしまうと、公式に詳しく載ってるので基本的にここを見ればOK Amazon Linux インスタンスのホスト名を変更する - Amazon Elastic Compute Cloud ホスト名とは user:hako$ ssh hoge@13.231.93.211 Last login: Fri Jul 31 20:40:03 2020 __|…

本番とローカルのDBを同期したい(ダンプとリストア)

MySQLでDBのダンプファイルを作成&リストアする方法についてまとめていきます。 ダンプって何 コンピュータの記憶装置(メモリやストレージなど)に記録された内容をまとめて表示、印刷、記録などすること 引用:ダンプとは - IT用語辞典 e-Words 簡単にい…

JOINとLEFT JOINの違いをきちんと理解する

JOINとLEFT JOINの違いをこれまであまりきちんと理解していなかったので改めておさらい。 結論 簡単に結論だけ先にまとめておくと JOINの場合、合致する右表のレコードがない場合は対応する左表のレコードが削除される(結果に出力されない) LEFT JOINの場…

AWSで既存の環境を複製したい〜AMIからインスタンス作成・Route53・サブネット等〜

業務で検証環境の複製を行い、AMI作成〜EC2インスタンス作成〜サブネット周りのところまで一通り網羅できたので書いておきます。 概要 今回の内容は「元からある環境を複製する時に行うこと」がメインになっています。 VPCを作成するところや最初にインスタ…

SQLの基礎の基礎を勉強し直す

これまでなんとなくで学んできたSQLの細かい部分や少し高度な部分を学び直したいなぁと思ってこちらを購入。 https://amzn.to/2CpxmW2 今まで知らなかった部分がいくつかあったので残しておこうと思います。 WHERE NOT は <> で表現できる 基本的すぎるかも…

Dockerのコンテナが立ち上がらない【Rails】

RailsのアプリケーションをDocker環境下で開発しています。 webコンテナ(railsサーバー)、dbコンテナなど複数コンテナの起動をdocker-compose.ymlで管理し、docker-compose up -dで一挙に立ち上がるようにしているのですが、たまにrailsサーバーのコンテナ…

Index name 'index_hoge' on table 'hoge_fugas' already exists と言われた時

migrateしたら遭遇したエラーの対処法。 Index name 'index_hoge' on table 'hoge_fugas' already exists hoge_fugasテーブルのhogeカラムにインデックスを貼ろうとしたらすでに存在するよと言われている感じ。 とりあえず状況を確認してみると bin/rake db:…

NameError: uninitialized constant Annotateの対処法

Railsで発生したエラーの対処法。 NameError: uninitialized constant Annotate stagingサーバーに入ってbundleしたときに以下のエラーがでた。 bundle exec rake db:migrate rake aborted! NameError: uninitialized constant Annotate んーーなんだろう。 …

Uglifier::Error: Unexpected character '`' 【Railsデプロイエラー】

レビュー通って意気揚々とmerge、デプロイ!!...と思ったらエラーでこけた話。 Uglifier::Error: Unexpected character '`' jsをかなりいじったPRだったのですぐに原因が想定できたのだけど、エラー文の通り。 期待しない文字「`」が含まれてるからエラーで…

Rubyで正規表現を使いたい

久しぶりにRuby記事。 前々から苦手意識が拭えなかった正規表現を理解できたのでまとめておく。 正規表現オブジェクト そもそも正規表現自体がオブジェクト。 きちんと考えれば分かることだけど、今までちゃんと意識したことなかった。 正規表現オブジェクト…

JavaScriptの分割代入が便利

Ruby人間がJSを学び直すプロジェクト継続中です。 なんでもRubyに置き換えて考えてしまうのは悪い癖...それで理解度が深まるのであれば良いのかな。 JSでオブジェクトを作成する 分割代入に入る前に、オブジェクトの作成のところから。 空のオブジェクトを作…

JSの関数宣言の基本

Ruby脳の人間が生のJSを学び直そうプロジェクト進行中。 今回は関数宣言についてあやふやだった部分をまとめた。 基本構文 オブジェクトとして定義する場合 function hoge () { 処理 } ある程度のまとまりの処理をオブジェクトとして定義しておいて、いろん…

JavaScriptの型変換〜Rubyと比較〜

最近生のJSをきちんと勉強し始めて、知らなかったことがちょこちょこ出てきたのでRubyと比較しながら書いていきます。 JavaScriptの型変換 文字列に変換 String()関数を使用 String(1); // => "1" String([1, 2, 3]); // => "1,2,3" String(true); // => "tr…

RailsでSendGridのAPIを使用する(4)【テンプレート】

※この記事は何回かに分けてRailsでセンドグリッドAPIを使用する方法をまとめたものです。 アカウント発行〜有料プラン契約までの導入編はこちら RailsでSendGridのAPIを使用する(1)〜導入〜 - 箱のプログラミング日記。 APIキーの発行やDNSへのレコード登…

RailsでSendGridのAPIを使用する(3)【sendgrid-ruby】

※この記事は何回かに分けてRailsでセンドグリッドAPIを使用する方法をまとめたものです。 アカウント発行〜有料プラン契約までの導入編はこちら RailsでSendGridのAPIを使用する(1)〜導入〜 - 箱のプログラミング日記。 APIキーの発行やDNSへのレコード登…

RailsでSendGridのAPIを使用する(2)【ドメイン設定・CNAMEレコード】

※この記事は何回かに分けてRailsでセンドグリッドAPIを使用する方法をまとめたものです。 前回はアカウント発行と有料プランへの登録までやったので、今回は実際にセンドグリッドの管理画面から各種設定をするところに入っていきたい。 ちなみに前回の記事は…

RailsでSendGridのAPIを使用する(1)【アカウント発行・有料プラン契約】

アカウント発行周りから実装まで網羅的に書かれている記事があまりなかったので、SendGridAPIについてまとめていきます。 やることが多くて多岐にわたるので、何回かに分けて書くことになりそう。 SendGridとは SendGridは全世界で利用されているメール配信…

RailsでChatworkAPIを使用する

RailsアプリケーションでChatworkAPIを使用してチャットを投げる方法について。 Chatworkとは ここから説明する必要もないする気がするのだけど go.chatwork.com チャットツール。 Slackよりもエンジニア色が少し弱い印象。 アプリケーションの中で例外が発…

Railsでhttps通信を使ってjsonでPOSTする

Railsのアプリケーションでhttpsリクエストを走らせ、jsonでPOSTしたい時の記事があまり無かったので書いておく。 完成形を先に class Sample require 'net/https' require 'uri' require 'json' def post_message uri = URI.parse("https://www.y-hakopro.c…

環境変数についておさらい

今更すぎるけど環境変数について少し深掘り。 環境変数とは 環境変数とは、OSが設定値などを永続的に保存し、利用者や実行されるプログラムから設定・参照できるようにしたもの。 引用元:環境変数とは - IT用語辞典 e-Words 「環境変数」って言うと一般的に…

「パスを通す」の意味をちゃんと理解する

「パスを通す」ってよく言うしなんとなく普段言われるがままやってるけど、ちゃんと言語化しておこうと思いLinuxのお勉強。 そもそもの話 そもそも日頃実行しているコマンドたちは、それ自体がどこかにファイルとして存在していて、コマンドを叩くことでファ…

Dockerを使った環境構築が楽すぎてビビった

突然の社用PCフリーズからの入社後2回目の環境構築、今回はGo編。 弊社ではRailsとGoを使っていて、RailsはまだDocker化されていないので結構大変だったんだけど、Goの方はDocker環境なのでめちゃめちゃ楽で驚いた話です。 Dockerのインストール $ brew inst…

MySQLがまたまた起動しない【自動起動で解決】

以前もだいぶエラーにハマってこんな感じの記事を書いた気がするのだけど、前はだいぶごちゃごちゃいろんな原因が絡んでいて複雑だったので、改めてシンプルに残しておくためにメモ。 ハマったエラー $ bin/rails db:migrate rails aborted! Mysql2::Error: …

Xcodeのインストールができない

社用macが不具合起こしてPC変えざるを得なくなったため、新しいPCで再度環境構築。。 その際にXcodeのインストールで詰まったのでメモ。 Xcodeとは Xcode(エックスコード)は、ソフトウェアを開発するためのアップルの統合開発環境 (IDE) であり、かつてはM…

文字列の一部を削除したい【delete / gsub】

Railsで開発していて渡ってきた文字列を操作したいなーと思った箇所があったのでメモ。 deleteメソッド delete(*strs) -> String self から strs に含まれる文字を取り除いた文字列を生成して返します。 引用:String#delete (Ruby 2.7.0 リファレンスマニュ…

本番と同じエラー画面を出したい【Rails】

Railsでの開発中に本番同様のエラー画面が表示される様に設定を変更する方法について。 設定方法 config/environments/development.rb # Show full error reports. config.consider_all_requests_local = true これを # Show full error reports. config.con…

コンフリクト解消した後にpush/pullができない【Git】

Git

GitのCUI操作もだいぶ慣れてきたけどコンフリクトが絡むとお手上げ〜な人向けにまとめる。 そもそもどうやってコンフリクトを解消したか コンフリクトは解消できたけど、その後に色々やろうとしたらつまづいたってこと多々あるはず。 まずはじめに大前提とし…

Cannot delete or update a parent row: a foreign key constraint fails【MySQLエラー】

MySQLのエラーでちょっとハマったのでメモ。 models/user.rb class User < ApplicationRecord has_many :articles, dependent: :destroy end models/article.rb class Article < ApplicationRecord belongs_to :user end migration(article) create_table "a…

dependent: :destroyとdependent: :delete_allの違い【Rails】

関連モデルを一緒に削除してくれるdependent: :destroyとdependent: :delete_allについて、違いがよく分かってなかったのでまとめました。 モデルを用意 models/user.rb class User < ApplicationRecord has_many :articles end models/article.rb class Art…

【 f.check_box】チェックボックスをデフォルトでチェックさせたい

Railsのビューヘルパーって引数の順番とか個数とかいつも忘れやすくてよくつまづく。 今回はチェックボックスにHTML属性のcheckedをつけておき、最初からチェックされている状態を再現します。 checked属性とは checked属性を指定すると、あらかじめその選択…