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のアプリが立ち上がる前にデータベースが起動している必要があります。これはデータベースのコンテナが起動しているという意味ではなく ...
docker-composeでrailsを起動する際、DBのMYSQL_USERをrootにすると発生する問題
普段、コンテナの外で開発をしている時にはバリバリ動いているアプリが、docker-compose upをした途端に「”Access denied for user ‘root’@’ ...
RailsでPAY.JPを利用した決済処理をモデルに追加する
アプリケーションに対するクレジットカードによる決済機能の要件はちまたに溢れております。マイクロサービスが叫ばれて久しい昨今、そのバックグラウンド側の実装について、Railsのモデルをベースに考えたいと思います。
実装
rqrcodeを利用してモデルのURLをQRコードとして生成する
RubyでQRコードを扱おうとすると、自ずと行き着くのがrqrcodeというgemです。ニ年ほど前に更新が途絶えており、ちょっとこれ大丈夫なのかな、などと思いつつ利用してみたところ、これといって問題もなく動きました。素晴らしい ...