ボクココ

サービス開発を成功させるまでの歩み

Ruby on Rails

Rails でのシンプルな S3 ダイレクトアップロード実装

ども、@kimihom です。 今回はシンプルに S3 にファイルを上げる方法を案内しよう。 Rails 側でファイルアップロードを受ける課題 おそらく多くの Rails デベロッパーは、 画像のサイズ縮小や変換をするプログラムを実行したいがために、一度 Rails 側でファ…

Action Text での Amazon S3 アップロード

ども、@kimihom です。 前回に引き続き Action Text に関して調査を続けている。今回は Amazon S3 へアップロードしたものをテキストエリアの中に表示させてみよう。 Active Storage の設定 Action Text のファイルアップロードは、Active Storage の設定に…

Rails 6 の Action Text を利用してみる

ども、@kimihom です。 前回の Rails 6 の記事では、フロントエンド Webpacker 周りの調査結果を報告した。さて今回はいよいよ私の Rails 6 にしたいメイン目的である Action Text についての調査を報告しようと思う。 Action Text の特徴 Action Text を使…

Rails 6 における Webpacker デフォルト動作

ども、@kimihom です。 Rails 6 が公開されてしばらく経つ。私としては Rails 6 の中でもとりわけ Action Text でクールなテキストエリアを実現したいと思っていので、Rails 6 をゼロから学び始めている。 でも今回は Action Text とは全然関係なく、Rails 6…

Rails における Chrome80 の SameSite 対応

ども、@kimihom です。 明日、2020/02/04 に Chrome 80 のリリースが予定されている。そこで巷で話題になっている SameSite の部分で対応が必要になるケースがでてくる。 ウェブ上で調べても全然その対応方法が出てなかったので、記録として残しておこう。 …

Rails で大量のレコードを並列処理する

ども、@kimihom です。 今回、大量のレコードを一つずつ処理する実装をしたので、その実装方法をまとめておく。 コードの大枠 以下は全ユーザー(User)に紐づいているレコード(Record) に対して処理をするコードとなっている。 User.all.order("id").each do …

Rails Active Record における rewhere の使い所

ども、@kimihom です。 今回は ActiveRecord でもおそらくマイナーなメソッドであろう rewhere を使う機会があったのでメモとして残しておく。 今回の利用ケース とあるデータの取得条件でフィルタリングをして統計として表示するページを想像してみて欲しい…

外部サービスの API で取ってきたデータを一括でDB登録する

ども、@kimihom です。 最近はいろいろな企業が API を提供してくれるようになってきた。外部サービスの API で、例えば顧客情報などを一括で取り込みたいというケースはよくあることだろう。私はこうして実装したということで記事として起こしてみる。 バッ…

Rails コールバックによる S3 事故と対策

ども、@kimihom です。 Rails でコードを書いていたら、きっと一度は書いたことがあるだろう before_destroy で起こりうるリスクと対策について記す。 S3 のドメインが変わるお知らせ 先日、S3 の URL が変更されるとのお知らせが届いた。 dev.classmethod.j…

Ruby on Rails で自前トーストを作るサンプル

ども、@kimihom です。 Rails で開発をしていると、何かしらのメッセージをユーザーに掲示したい時がよく出てくる。 コンタクトを作成しました。 メンバーの招待に失敗しました。 アイテムを更新しました。 こういったときに flash っていう便利なメッセージ…

Ruby on Rails 5.1 から 5.2 へアップデートログ

ども、@kimihom です。 今回は Ruby と Ruby on Rails をそれぞれバージョンアップさせたので、そのログを記そうと思う。 アップデート概要 Ruby と Ruby on Rails をそれぞれアップデート。そろそろ Rails 6.0 も出そうなタイミングってこともあって、定期…

Ruby on Rails の魅力と思想

ども、@kimihom です。 私は Web フレームワークは Ruby on Rails を利用している。かれこれバージョン2.2 の頃から使い続けているので 7年以上になる。そこまでして私が Ruby on Rails を使い続ける魅力について個人的な想いを記していく。 Rails の作者 DH…

今更ながら Rails 5.1 にアップデートした話

ども、@kimihom です。 先日、ようやく Rails 5.1 にアップデートしたので、それについて簡単にまとめを書いていこうと思う。 アップデートの経緯 前までは Rails 4.2.x の最新をアップデートし続けている形で運用していた。 Rails 5 以降の新機能はチェック…

Rails アプリの国際化の実装と考察

ども、@kimihom です。2018年もどうぞよろしくお願いします。 さて、今回は Rails アプリを世界へ向けて展開したい人向けの記事を書いていこう。 基本的な参考資料 まずは Rails の I18Nドキュメント を読むことから始めよう。ここに基本的なことは全て書か…

rails-ujs と form_with の使い方

ども、@kimihom です。 Rails 5.0 までは jquery-rails を使ってフォームやリンクの Ajax 通信を可能にしていたけど、Rails 5.1 からは rails-ujs として切り出され、晴れて jQuery からの脱却を可能にした。 そこで、本記事ではこの rails-ujs と関連深い f…

SaaS における企業毎のデータ管理について

ども、@kimihom です。 SaaS において悩ましいのが、企業毎のデータをどうやって管理していくかという話がある。企業毎にデータは完全に独立しているので、URL やデータそのものも独立している方が望ましいとされる。では SaaS においてデータベースの設計を…

Rails 5.1 アプリを Heroku にデプロイする

ども、@kimihom です。 この記事は Heroku Advent Calendar 8日目の記事です。まだ3枠空きがありますので、Heroku ユーザーの方はぜひご登録を! Rails 5.1 から Yarn のサポートが入り、フロントエンドの JavaScript ライブラリの管理が容易になった。そこ…

Rails 5.1 の First Impression

ども、@kimihom です。 この連休はひたすらプログラミングやってた。そんな中で手をつけ始めた Rails 5.1 について感想を書いてみるとする。こういうちょっとしたことでも記事にできるのがブログのいいところよね。 Yarn マジ便利 JavaScript の パッケージ…

Heroku Addon 「Scout」 の紹介

ども、@kimihom です。 Heroku Addon の1つである Scout はRuby on Rails 専用のメトリクスサービスだ。一般的にこの類の Addon だと NewRelic が一般的だけども、重いしメモリも食うので Scout を使っている。今回はそんな Scout について簡単にご紹介しよ…

Rails 5.1 のフロントエンド周りの所感

ども、@kimihom です。 常に話題に上がってくる Rails のフロントエンド事情だけども、今回 Rails5.1 を色々みた中で自分が感じたことについて書いていく。予め断っておくと、自分もまだそこまでフロントエンドをマスターしている身ではないので間違った考え…

Elasticsearch と Rails のデータ同期方法

ども、@kimihom です。 全文検索の仕組みとして Elasticsearch を使ってサービスを運用している。Elasticsearch と Rails を使っている上で考慮しなきゃいけないデータ同期の方法について、それぞれのメリット/デメリットを紹介した上で最終的な提案まで記す…

Heroku Pipeline にステージング環境を乗せてみた

ども、@kimihom です。 今回はステージング環境と本番環境で Heroku アプリを分けていたものを、 Heroku Pipeline でまとめたのでその手順についてご紹介する。 今まで Heroku Pipeline を勘違いしていたんだけど、ステージング環境の Heroku アプリは Herok…

Heroku x Rails のサービスを本番運用する際に確認したいこと

ども、@kimihom です。 私は Heroku に Rails サーバーを立ててサービスを運用している。これまでの経験を元に、定期的にチェックしておきたい指標とか項目をまとめてみる。今後のサービス開発などで参考になれば幸いだ。 サービス構成 現在の構成はというと…

ライブラリの利用を減らしていくことの重要性

ども、@kimihom です。 最近の運用フェーズでの開発で意識していることの一つ、「Gem ライブラリの利用を減らす」ことについて思うことを書く。 記事の内容は Ruby 周りに最適化されているけど、他の言語でも同様のことが言えると思うので適宜置き換えて読ん…

月額課金モデルの Web サービスの設計方法

ども、@kimihom です。 今回は月額課金モデルの Web サービスを実現したい企業向けに設計の参考になる情報を提供できればと思う。こういう情報は割と自分なりに設計して実装するっていうパターンが多いかと思うが、とても大事なことなので慎重に検討していこ…

Ruby のバージョンを上げてGuard が動かなくなった時の対応

ども、@kimihom です。 Ruby で開発しているのであれば常に新しいバージョンで開発を続けたいもの。その中で今回は guard が動かなくなったのでその対応メモ。 Ruby 2.3.3 guard 2.14.1 エラー内容 こんなエラーが出て開発できなかった。 $ bundle exec guar…

Rails の フロントエンド周りの未来予測

ども、@kimihom です。 Rails の Sprockets や Uglifier などが最新の JavaScript に追従していないという理由で、Rails 標準のやり方から外れて最新のフロントエンドツールを追い求める系の報告が多い。一部では完全に Rails の Asset Pipeline から外れて…

極める技術を絞るという勇気

ども、@kimihom です。 いつの時代も、新しいテクノロジーがどんどん出てくるものだ。「この技術は世界を変える!」だなんて言って、みんなが飛びついて徐々に一般化されていく。「とりあえずなんでも触ってみる」ってのはもちろん大事なことだ。それが自分…

Rails assets 内の JavaScript のメソッドを View 内から呼び出す方法

ども、@kimihom です。 Rails で開発していると、assets/javascripts 内で定義したメソッドを View 内に書かれた <script>タグから呼び出したい時がある。Rails は基本的に assets/javascript 内のコードを全てひとまとめにして一つのapplication.jsってのを作るから…

独学での Web プログラミング学習まとめ

ども、@kimihom です。 自分で何かサービスを出したいという方は多いかと思う。今回はそんな方へ最低限知らなければならないリストを上げようと思う。ターゲットとしては Web アプリケーションということにしたい。 UNIX コマンド 最初は黒い画面に慣れる必…