wicked_pdfを利用してRailsのアプリにPDFのダウンロード機能を追加する
PDFを生成するgemには色々と選択肢があるかと存じます。その中でも比較的使いやすいのが、wicked_pdfというgemです。内部ではwkhtmltopdf-binaryが動いているので、正確にはwicked_pdfとwkh ...
railsでtest-queueを利用してcucumberを並列に実行する
試験とは得てして時間が掛かるものだと思います。私が過去に経験した最も時間の掛かる試験は、一通り流すだけで三日くらい掛かる、本当にどうしようもないものでございました。しかも試験が通らないとCIの関係からデプロイできないという仕様 ...
rakeタスクに引数を与える
Rakeタスクに引数を与えて実行したい、と思うことは割と頻繁にあると思います。しかしながら、Rakeタスクの引数ってどういうのだっけ? と疑問に思ったところで、調べるのも面倒になり、最終的には環境変数でいいや、というのがRai ...
RailsでTEXT型を越えるテキスト(MEDIUMTEXT/LOGTEXT)を扱う
MySQL(MariaDB)にはTEXT型と呼ばれる65,535バイトまでの文字列を扱う型がございます。たいていのアプリはこちらを指定することで、ほとんどの文章を管理できるのではないかと思います。
しかしながら、少 ...
Railsで作成したアプリのセキュリティチェックをbrakemanで行う
アプリをリリースするとき、どうしても必要になるのがセキュリティ対策です。とくに企業内では一定の基準を満たしていないと、リリースしてはいけません、といったルールもあるかと存じます。
また、サービス開発の業務フローが整 ...
validates_timelinessでdatetimeのバリデーションを行う
Railsでアプリを作る際にdatetime型を使わないことはないと思います。その割にActiveRecordのvalidationにはdatetimeに対するサポートがちょっと少ない気がします。これを補うべく開発されたのがv ...
rack-corsを利用してRailsでクロスドメインでのリクエストを受け付ける
Vue.jsなどを利用してフロントエンドをバックエンドから切り出した際に問題となるのが、クロスドメインでのアクセスです。Railsでアプリを開発する際には、rack-corsと呼ばれるgemを利用するのが一般的です。
実 ...
RailsのActiveJobでSidekiqの代わりにSneakersを利用する
Sidekiqは優れたバックグラウンド処理のためのgemです。しかしながら、後ろで動いているのがredisである以上、あまり多くの機能を求めることはできません。一部の機能はRubyのコードによって実装されており、Rubyの言語 ...
graphql-rubyでfieldの要素を特定のユーザに返さないようにする
有料会員と無料会員でコンテンツを分けたい場合など、同じAPIであっても、返されるデータの内容に差異を設けたいと考えることは往々にして起こると思います。そういったときに便利なのが、graphql-rubyのfieldに定義された ...
docker-composeでデプロイする際に、RailsがDBプロセスの起動を待つようにする
docker-composeでアプリをデプロイする際、pumaにせよunicornにせよ、Railsのアプリが立ち上がる前にデータベースが起動している必要があります。これはデータベースのコンテナが起動しているという意味ではなく ...