タイトルの通り、gemのコードリーディングを初めてやってみたので手順などメモ。 なぜやるのか 最近gemのコードを読む機会が多くて、大体はREADMEでは分からない情報を取ってきたい時にGitHubリポジトリ内で検索かけつつ読むくらいだったのだけど、 他人のコ…
デプロイが急にコケるようになり、色々試行錯誤して解決したのでメモ。 結論から言うとdelayed_jobのpidが悪さをしていて、うまくworkerを再起動できないのが原因だった。 Ruby 2.4.3 Bundler 1.16.1 Rails 5.1.5 Capistrano 3.9.0 delayed_job 4.1.5 発生し…
RailsEngineでRubyのバージョンを変えて使えないのかな〜と思って色々と調べた結果をメモ。 RailsEngineとは エンジン (engine) は、ホストとなるRailsアプリケーションに機能を提供するミニチュア版Railsアプリケーションとみなせます。 ** すなわち、エン…
Railsのプロジェクトでbundle installしたところ、mysql2のインストールでエラーになってしまったのでメモ。 Ruby...2.4.3 Rails...5.1.5 mysql2 発生したエラー Fetching mysql2 0.4.10 Installing mysql2 0.4.10 with native extensions Gem::Ext::BuildEr…
ffiが突然インストールできなくなったためメモ。 発生したエラー Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /Users/hako/Project/sample_app/vendor/bundle/ruby/2.4.0/gems/ffi-1.9.23/ext/ffi_c /Users/hak…
RSpecでCSVダウンロードのcontrollerテストを書く方法をまとめていきます。 環境 ruby 2.4.3 Rails 5.1.5 rspec-rails (3.7.2) factory_bot_rails (4.8.2) 完成したソースコード 先にソースコード貼っちゃいます。 まずはコントローラー app/controllers/use…
Dockerコンテナのタイムゾーン変更でハマったのでメモ。 結論から言うと、docker-compose.ymlに環境変数TZを設定すればうまくいった。 環境 Ruby 2.4.3 Rails...5.1.5 MySQL 5.7 Docker 19.03.12 Dockerコンテナ...app(Rails)/ db(MySQL)/ nginx 流れ そ…
capistranoでデプロイする過程でmigrationがエラーで実行できなかったのでメモ。 ActiveRecord::ConcurrentMigrationError こんなエラーが出た rake stderr: rake aborted! ActiveRecord::ConcurrentMigrationError: Cannot run migrations because another …
既存のプロジェクトで、これまで問題なくできていたのが突然bundle installをするとnokogiriがインストールできないよって怒られるようになりました。 状況としては、新しいPCへの移行に際して移行アシスタントを使用してアプリケーションやファイル群を全て…
RailsのアプリケーションをDocker環境下で開発しています。 webコンテナ(railsサーバー)、dbコンテナなど複数コンテナの起動をdocker-compose.ymlで管理し、docker-compose up -dで一挙に立ち上がるようにしているのですが、たまにrailsサーバーのコンテナ…
migrateしたら遭遇したエラーの対処法。 Index name 'index_hoge' on table 'hoge_fugas' already exists hoge_fugasテーブルのhogeカラムにインデックスを貼ろうとしたらすでに存在するよと言われている感じ。 とりあえず状況を確認してみると bin/rake db:…
Railsで発生したエラーの対処法。 NameError: uninitialized constant Annotate stagingサーバーに入ってbundleしたときに以下のエラーがでた。 bundle exec rake db:migrate rake aborted! NameError: uninitialized constant Annotate んーーなんだろう。 …
レビュー通って意気揚々とmerge、デプロイ!!...と思ったらエラーでこけた話。 Uglifier::Error: Unexpected character '`' jsをかなりいじったPRだったのですぐに原因が想定できたのだけど、エラー文の通り。 期待しない文字「`」が含まれてるからエラーで…
※この記事は何回かに分けてRailsでセンドグリッドAPIを使用する方法をまとめたものです。 アカウント発行〜有料プラン契約までの導入編はこちら RailsでSendGridのAPIを使用する(1)〜導入〜 - 箱のプログラミング日記。 APIキーの発行やDNSへのレコード登…
※この記事は何回かに分けてRailsでセンドグリッドAPIを使用する方法をまとめたものです。 アカウント発行〜有料プラン契約までの導入編はこちら RailsでSendGridのAPIを使用する(1)〜導入〜 - 箱のプログラミング日記。 APIキーの発行やDNSへのレコード登…
※この記事は何回かに分けてRailsでセンドグリッドAPIを使用する方法をまとめたものです。 前回はアカウント発行と有料プランへの登録までやったので、今回は実際にセンドグリッドの管理画面から各種設定をするところに入っていきたい。 ちなみに前回の記事は…
アカウント発行周りから実装まで網羅的に書かれている記事があまりなかったので、SendGridAPIについてまとめていきます。 やることが多くて多岐にわたるので、何回かに分けて書くことになりそう。 SendGridとは SendGridは全世界で利用されているメール配信…
RailsアプリケーションでChatworkAPIを使用してチャットを投げる方法について。 Chatworkとは ここから説明する必要もないする気がするのだけど go.chatwork.com チャットツール。 Slackよりもエンジニア色が少し弱い印象。 アプリケーションの中で例外が発…
Railsのアプリケーションでhttpsリクエストを走らせ、jsonでPOSTしたい時の記事があまり無かったので書いておく。 完成形を先に class Sample require 'net/https' require 'uri' require 'json' def post_message uri = URI.parse("https://www.y-hakopro.c…
Railsで開発していて渡ってきた文字列を操作したいなーと思った箇所があったのでメモ。 deleteメソッド delete(*strs) -> String self から strs に含まれる文字を取り除いた文字列を生成して返します。 引用:String#delete (Ruby 2.7.0 リファレンスマニュ…
Railsでの開発中に本番同様のエラー画面が表示される様に設定を変更する方法について。 設定方法 config/environments/development.rb # Show full error reports. config.consider_all_requests_local = true これを # Show full error reports. config.con…
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について、違いがよく分かってなかったのでまとめました。 モデルを用意 models/user.rb class User < ApplicationRecord has_many :articles end models/article.rb class Art…
Railsのビューヘルパーって引数の順番とか個数とかいつも忘れやすくてよくつまづく。 今回はチェックボックスにHTML属性のcheckedをつけておき、最初からチェックされている状態を再現します。 checked属性とは checked属性を指定すると、あらかじめその選択…
カラムの値をハッシュ形式で保存する方法があるらしい、というのは以前聞いた事があったのですが、この度色々調べていたところserializeやstoreを使えば実現できるという事が分かったので、ちょっと使ってみました。 ※Railsのserializeやstoreをプロダクトに…
Railsで真偽値(boolean型)を使うに当たって、パラメーターやDB間でどのように受け渡しされるのかというのをちょっと追ってみた。 migration classCreateUsers < ActiveRecord::Migration[5.1] def change create_table :users do |t| t.string :name, null…
DBに保存した文字列の改行を反映させたいと思ってググったら、今まで見たことのあるhtml_safeの他にsanitizeというものが出てきて違いが気になったので比べてみた。 エスケープとは まず、そもそも日頃よく目にする「エスケープ処理」について改めておさらい…
特に必要だったわけじゃなんだけど、本を読んでて気になったloggerを少し触ってみたのでメモ。 loggerとは rails sでサーバーを起動すると、ローカルでリクエストが走った時やSQLが走った時などターミナルにダダダっとログが出力されるけど、あれもRailsのlo…
Railsでアプリケーションの開発をするようになってもう数ヶ月経ちますが、findやらfind_byやら(whereやら)の明確な違いをよく分からないまま使ってしまっていたので、色々触ってまとめてみました。 findメソッド findメソッドを使用すると、与えられたどの…
データベースとのやりとりで非常に便利なメソッドをいくつか使用する機会がありとてもRailsらしくて感動したので、いくつかまとめておきます。 新しいオブジェクトかどうか【new_record?】 その名の通り、オブジェクトが新しいレコードかどうかを検証してく…