アクトインディ開発者ブログ

子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです

Rails

ローカル環境でもAPMが見たい!

こんにちは!!こんにちは!! moriyamaです。 みなさん、APMってご存知でしょうか? Application Performance Managementの略で、直訳すると「アプリケーション性能管理」ですね。 広く知られているサービスとして、Amazon CloudWatchやNew Relicなどが挙げられ…

CodeBuildのレポート機能を使ってRSpecの結果を見る

morishitaです。 前回のエントリで、CodeBuild 上で RSpec を実行する環境について紹介しました。 tech.actindi.net その中で RSpec の結果を CodeBuild のレポートで確認できるようにしてみたらなかなか良かったのでそれについて紹介します。 CodeBuild の…

時刻の扱いでミスしたので懺悔を

こんにちは!エンジニアのkanekoです。 私はタイムゾーンの考慮に毎回苦戦しています。 そして、最近やらかしが発覚したので反省を書きます。 プロローグ:サービスのデフォルトタイムゾーン 私はいこーよで買えるWEBチケットの商品取り扱いプロダクトの開発…

天気予報APIを使って天気を表示してみた

新米Webエンジニアのhiroさんです。 ツーリングでもおでかけでも天気の情報は欠かせません。 というわけで自分のアプリに天気予報APIから現在の天気を取得して画面に表示してみます。 要件 天気情報提供サービスの OpenWeatherMap の無料枠を使って実装しま…

Railsのバグでは?マイグレーションでMySQLのTIMESTAMP型にNULL 値を許可すると異常系がある

こんにちは、キエンです。 このエントリはアクトインディアドベントカレンダー2019の6日目です。 adventar.org さっそく、Railsのマイグレーションで一つ問題を気づいています。Railsのバグか、それとも僕がどこか勘違いしていますが、一旦共有させていただ…

PostgreSQLにmoney型というのがあるそうですよという話

こんにちは。kanekoです。 私はいこーよの中でもWEBチケット販売に関するプロダクトのチームにいます。社内での呼び方はいくつかありますがここではプロダクトをticket、チームをチケットチームとします。 この記事の結論 結論を述べますとDBがPostgreSQLのr…

Rails Developers Beer BashでLT登壇してきました。

こんにちは。nakamuraです。 10月26日に行われたRails Developers Beer Bashで人生初のLTを行ってきました。 発表した際の資料はこちらです。 Rails devs bb lt from masayukinakamura6 www.slideshare.net 登壇してみて 今回が人生初のLTだったのですが…

いこーよにWebチケットサービスをリリースしました

こんにちは、nakamuraです。もはや2ヶ月前ほどになりますが、タイトルの通り、いこーよでWebチケットが購入できるようになりました。リリース当初はまだ未実装だった機能もどんどんリリースされ、これからもますます便利になっていくサービスですので、ぜひ…

VCRでWeb APIのモックを楽しよう!

morishitaです。 最近、Stripeを利用した決済処理の実装をしていました。 tech.actindi.net tech.actindi.net サーバーサイド(Rails)でStripe APIを利用しており、そのテストの実装にvcrを利用しました。 以前から使っていましたが、改めて便利だと思った…

Stripeを使った決済処理を調べてみた。

morishitaです。 今回はStripeについて調べてみたのでそのことを書きます。 Stripeとは Stripeは決済処理を代行してくれるサービスです。 サービス内でなにか販売をしようとするとユーザーから代金をいただく決済の仕組みを用意する必要があります。 ネット…

Simplecovで一部クラスでカバレッジが計測されない場合の解決方法

morishitaです。 アクトインディではRailsアプリケーションのテストをRSpecで書いています。 そして、テストカバレッジをSimpleCovを使って計測しています。 何故かカバレッジが計測できないクラスがあったのですが、計測できるように解決した件を紹介します…

Active Flagで効率的にフラグを実装する

morishitaです。 今回はActive FlagというGemを紹介します。 このGemはActiveRecordのモデルでBIt Arrayなカラムを扱いやすくしてくれます。 github.com こういう要件ってありますよね? ON/OFFできるユーザ設定をたくさん持たせたい 選択肢を複数選択できる…

Railsで2段階認証を試してみました

こんにちは、nakamuraです。 securityって大事ですよね。少し前からRailsで2要素認証ってどうやるんだろうと気になっていたので、google-authenticator-railsを使ってどんな風に実装できるのか試してみました。基本的には google-authenticator-rails Readm…

Serverless Framework Jets Rubyを触ってみました

こんにちは。Webエンジニアのnakamuraです。 Serveless Frameworkを勉強するにあたって、Ruby製のサーバーレスフレームワークJetsを使ってみました。 サーバーレスフレームワークと言っても、どこから始めていったらいいのかわからなかったので、Railsライク…

いこレポのRailsを5.1.2から5.2.2にアップグレードしました

morishitaです。 Rails 6のリリースも見えてきたので、やっといこレポのRailsをアップグレードしました。 具体的には、Rails 5.1.2 → 5.2.2 のアップグレードを実施しました。それについて紹介します。 アップグレードまでの道のり アップグレードはセオリー…

DockerでRails newしてみました

こんにちは。Webエンジニアのnakamuraです。 Dockerには日々お世話になっているのですが、そもそもDockerについても何もわかっていなかったので、自分でDockerfileを書いてみました。 また、弊社では、現在、育成枠でのエンジニア採用も検討中ということもあ…

Webど素人のSierがWebエンジニアになんとかなれた話

Webエンジニアのnakamuraです。 今回はタイトルにもあります通りWebのことなんてHTMLぐらいしかしらなかったメーカー系のSierだった僕がどのような経緯でWebエンジニアになったかを紹介したいと思います。 これから、Webエンジニアになりたいと思っている人…

メディア素人のWebディレクターがお出かけメディアを3年やって思ったこと3つ

メディア素人の元ECサイトWebディレクターが、お出かけメディアを3年やって思ったことを3つの切り口でまとめました。「SEO効果でオーガニック流入が増えてるまで何ヶ月かかる?」「表示スピードがどのぐらい数字にインパクトを与える?」「Webメディアの貢献…

ActiveRecord::Base#reload はインスタンス変数をクリアしない

komatsu(@nomnel)です。 小ネタですがタイトルの事象でハマってしまったので記事にします。

AWS CodeBuild 入門

morishitaです。 今回は利用しているAWSのサービスの中でも特にお気に入りの CodeBuildについて書きたいと思います。 CodeBuildとは CodeBuild とはAWSのサービスの1つで、完全マネージド型のビルドサービスです。 ビルドサービスだからといって、プログラ…

HTTP/HTTPS判定をnginx側で判定するようにしました

こんにちは、endoです。 いこーよのHTTP/HTTPS判定をアプリケーション側から、nginxで行うようにしました。 rails5へのアップデート作業の途中経過報告に書いていたことを実現しました。 理由としては、下記の通りです。 アプリケーション側で行うより、ALB/…

rails5へのアップデート作業の途中経過報告

こんにちは、endoです。 アドベントカレンダー2日目の記事です。 現在、rails5へのアップデート作業をしており、その途中経過報告です。 1 rails4系の最新版にする 2 rails5を動かす →gemをrails5対応するものにあげる 3 rails4で変更できるDeprecationコー…

Railsのログを awslogs で Cloudwatch Logs に出力する

morishita です。 今回はいこレポでのログ出力について紹介します。 いこレポの動作環境 いこレポは ElasticBeanstalk を利用してアプリケーションサーバを稼働させています。 ElasticBeanstalk ではプラットフォームを選択できますが、 Multi Container Doc…

DelayedJobのバックグランド処理でサーバーが落ちた時にすること

こんにちは、endoです。 今回はDelayedJob先生のバックグラウンドの処理が重くて、スワップが発生してサーバーがお亡くなりになりました。 対処として、サーバー再起動を行いました。 この時、サーバー再起動で処理は繰り返されないだろうと勘違いしていまし…

ActiveRecord::enum を拡張する gem を作りました

kawaguchiです。 iko-yo.net で使われている module を別プロジェクトで使いたくなったので gem にしました。 https://github.com/jiikko/active_record-enum_with_label class User < ActiveRecord::Base include ActiveRecord::EnumWithLabel enum_with_la…

iko-yo.net を rails4.2 にアップグレードしました

kawaguchiです。 先日、iko-yo.net の rails を 4.1 から 4.2 へアップグレードしました。 大きなアップグレードといえば、 変更行数が多くなるので github.com のプルリクではすべての差分が表示できなくなったり、 コードレビューに時間がかかり開発者にス…

act-fluent-logger-rails の Rails5 対応をリリース

こんにちは、tahara です。 act-fluent-logger-rails の Rails5 対応をリリースしました。 https://rubygems.org/gems/act-fluent-logger-rails/versions/0.3.0

Paperclip を使っている Rails アプリのテスト高速化

こんにちは、tahara です。 テストでも Paperclip を使っているモデルを FactoryGirl.create(:facility) とかすると、 ImageMagick の convert コマンドなどが走ってしまいます。 これがなかなか重くてテストを遅くしちゃっています。 そこで Paperclip のサ…

delivery_method を smtp にしたら 2.5 倍速くなった

こんにちは、tahara です。 Rails で config.action_mailer.delivery_method を :sendmail から :smtp にかえたら、44 分かかっていたメール送信バッチが 17 分で完了するようになりました。 ( ^-^)/:★*☆オメデト♪ なのでみなさん :smpt にしましょう! とい…

before_destory の prepend 指定について

ユーザーがブログを書けるアプリケーションとかで、ユーザーが退会したら、関連するブログを削除する指定をすることは良くあると思います。 以下のような設定です。 class User < ActiveRecord::Base has_many :blogs, dependent: :destroy end class Blog <…