ラブグラフのエンジニアブログのフィード
https://zenn.dev/p/lovegraph
https://corporate.lovegraph.me 出張写真撮影サービス『ラブグラフ』やオンライン写真教室『ラブグラフアカデミー』を提供しています
フィード

google-drive-ruby を脱却して google-apis-sheets_v4 でスプレッドシートにアクセス!
ラブグラフのエンジニアブログのフィード
ラブグラフでCTOをしております横江( @yokoe24 )です!Googleフォームの回答結果をGoogleスプレッドシートに出力している場合に、Googleスプレッドシートのデータを読み取ってデータベースに格納したい という場面があります。 google-drive-ruby の欠点Ruby on Rails を使っている会社では google_drive (google-drive-ruby) という gem がよく使われていました。GitHub のスター数も1,800以上ついていて、その人気ぶりが伺えます。しかしこの gem の最終更新は、2025年3月現在、Ru...
4日前

影響範囲を考えて@changeとwatchを使い分けよう!
2

ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフ開発インターンの筒井(@kaito_tsu2i)です!今回はセレクトボックスを使った実装の際に、Vue.js の@changeとwatchの使い方に迷ったことがあったので、どうやって使い分けるかの一例を解説したいと思います! 背景都道府県を選択できるセレクトボックスの値に応じて、市区町村のセレクトボックスの選択肢を絞り込むような機能を Vue.js を使って実装しました。その際に思いついた方法が2つありました。@changeで値が変更されるたびにメソッドを呼ぶwatchで値を監視して変更されるたびに呼ぶ両方とも同じように見えたので、どっちが適切...
8日前

スプレッドシートやエクセルの列名を列番号に変換する
ラブグラフのエンジニアブログのフィード
ラブグラフでCTOをしております横江( @yokoe24 )です!スプレッドシートの 列名(A, B, C, AA, ...のようなやつ) を 列番号(1, 2, 3 列目を示す値) に相互変換する Ruby プログラムを書いていたらいろいろハマりどころがありましたので共有します!以降、パット見で区別がつきやすいよう「列名」は「列ラベル」と表記しています。 まずはクイズです!まず、列ラベルを列番号に変換する上で、どのようになっているか理解をしていきましょう。列ラベルと列番号は、以下の表で示す関係のようになっています。列ラベル列番号A1B2...
22日前

update_all vs activerecord-import
ラブグラフのエンジニアブログのフィード
update_all vs activerecord-import高速なバルクアップデートを実現する方法として、update_all と activerecord-import の2つがあります。それぞれ特性が異なるので、それらについて書いていきます! そもそもバルクアップデートとは?バルクアップデート とは、複数のレコードを 個別に処理するのではなく、まとめて一括で更新する ことです。通常の update メソッドは 1レコードずつSQLを実行 するため、大量データを扱うことに比例し、速度が低下してしまいます。バルクアップデートを使い、SQLの実行回数を減らしてパフォー...
1ヶ月前

VueとReactのpropsの違い
ラブグラフのエンジニアブログのフィード
最近はReact系フレームワークを使用しているユースケースがとても増えていますが、Vue系フレームワークもまだまだシェアを誇っています。その中で、両者の違いはあるとはいえ、データの受け渡しはpropsだよね、ということで、VueとReactのpropsについて振り返りがてらまとめてみるのもいいのかなと思い、やっていこうと思います。 宣言の可否 Vue.jsの場合公式ドキュメントからの引用にはなりますが、Vue.jsでpropsを使用する際は、明示的な宣言が必要になります。Composition API での宣言<script setup>const pr...
1ヶ月前

【Rails】rename_table で一発? 失敗しないためのテーブル名変更テクニック
ラブグラフのエンジニアブログのフィード
はじめにこんにちは!ラブグラフエンジニアのひろです。この記事では Rails アプリケーションで既に運用中のテーブル名を変更する方法 について解説します。「テーブル名がプロジェクト全体の命名規則に合っていない」「分かりづらい名前を整理したい」など、開発を続けていると必要になる場面がありますよね。しかし、本番運用中のテーブル名変更は、リスクが伴うため慎重に進める必要があります。本記事では、Rails の rename_table を使ったシンプルな方法(方法1)新規テーブルを作成して段階的にデータ移行する方法(方法2) ← こちらを詳細に紹介これらの比較や具体的...
2ヶ月前

pack, unpack メソッドをなんとなく理解したい!【Ruby】
ラブグラフのエンジニアブログのフィード
ラブグラフでエンジニアをしています横江( @yokoe24 )です!Ruby を扱っていて、たまに出てくる pack メソッドや unpack メソッド。以前書いた、emoji を1文字と数えるのが大変な記事でも扱いました。https://zenn.dev/lovegraph/articles/a43529cc3653f6エンコード済みの文字列を直すときに重宝するのですが、毎回使い方がよくわかりません。よくある使い方を見ながら、なんとな〜く理解できるところまで進みたいと思います! 1. 理解を深めたい 1-1. ドキュメントを見てみるまずは公式ドキュメント!pac...
2ヶ月前

【Rails】PAY.JP の3Dセキュア認証に対応する実装方法をコードで解説
ラブグラフのエンジニアブログのフィード
ラブグラフでCTOをしております横江( @yokoe24 )です!あけましておめでとうございます!!🌅 1. EMV 3-D Secure が必須に!2023年3月に経済産業省が発表した「クレジットカード・セキュリティガイドライン【4.0版】が改訂されました」に原則、全てのEC加盟店は、2025年3月末までにEMV3-Dセキュアの導入を求めると記載のある通り、3Dセキュア認証が2025年3月末までに実質的に義務化される方針となりました。ちなみにこの 「EMV3-Dセキュア」 の EMV とはなにかというと、クレジットカード大手の Europay, Mastercar...
3ヶ月前

「be」と「eq」の違い、説明できる?RSpecマッチャ解説!
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです!今回は、RSpec や Capybara でよく使われるマッチャについて解説していきます。よく迷われがちな「be」と「eq」の違いにも触れていくので、ぜひ参考にしてみてください! 判定でよく使うマッチャ expect(XXX).to eqまずは、基本中の基本である 比較 のマッチャです。eq は「XXXとYYYの 値 が等しいかどうか」を判定します。データベースのレコード数や、特定のオブジェクトの属性値をチェックするときによく使います。 例1: レコード数の確認it "新しい本が作成される" do # creat...
3ヶ月前

【100記事到達!】エンジニア3名の会社でも技術ブログをこんなに書けたよ!!🥰
ラブグラフのエンジニアブログのフィード
ラブグラフでCTOやエンジニアをしております横江( @yokoe24 )です!今日は私の誕生日です!! わーい!🍰 2023/08〜2024/12 で 100記事に到達!!!さて、この「ラブグラフのエンジニアブログ」ですが、先日公開された記事をもちまして、なんと 100記事目を迎えましたぁ!!!!!! 🥳すごぉい!!!!!!! 🙌Zenn の記事は、あとから Publication への紐づけを変えられるので、過去に投稿した人が紐づけを変えれば全然100記事未満になることもできるのですが(笑)、現時点ではこの記事が103記事目になりました!!ラブグラフはエンジニア正...
4ヶ月前

Dirtyが原因で通知が動かない?Railsの変更検知トラブルを解決!
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです。今回は、以前紹介した ActiveRecord::AttributeMethods::Dirty を使っていく中で遭遇した問題について書いていきます。https://zenn.dev/lovegraph/articles/a1c686ccb68403!この記事はラブグラフのエンジニアブログの記念すべき100記事目です!!昨年の8月から書き始め、メンバーみんなで頑張った結果です🎉 はじめにRails では、モデルの属性が変更されたかどうかを簡単に検知できる便利な仕組みとして ActiveRecord::AttributeMet...
4ヶ月前

追加gem無しでActiveModelの画像ファイルにバリデーションをかけたい!
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフで開発インターンをしている筒井です!今回は新規 gem を追加せずに ActiveModel で画像ファイルにバリデーションをかける方法を紹介します。 背景画像ファイルのフォーマットを JPEG だけ受けつけるようなバリデーションを実装したく、最初に出た案がfile_validatorsというgemを使うというものでした。参考:https://github.com/musaffa/file_validatorsですが、リポジトリを見てみると3年前から更新がなく、今後 Rails のバージョンを上げる際に問題が出る可能性があったため、今回は Activ...
4ヶ月前

サンプルコードで学ぶ!RSpecでCSV機能をテストする方法
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです。今回は、CSVデータを使った機能を RSpec でどのようにテストするかについて解説します。この記事では、以下の3つのテスト方法を具体例と共に紹介します:CSVファイルを読み込む方法ヒアドキュメントでデータを直接利用する方法テンポラリファイル( Tempfile )を使う方法 CSV機能をテストする3つの手法 1. CSVファイルを読み込む方法 概要テスト用のCSVファイルを spec/fixtures ディレクトリなどに保存しておき、それを読み込んでテストする方法です。実際の運用に近い形で検証できるため、複...
4ヶ月前

【RSpec】type は何ができる?便利なメソッドを紹介します
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです!今日は RSpec で指定できる type メタデータについてまとめます。type の仕組みを理解し、効率的なテスト設計に役立ててください。 type メタデータとは? 役割RSpec に「このテストが何を対象にしているか」を伝えるもの。Rails では、type に応じて適切なヘルパーや設定が自動で有効になります。https://rspec.toolboxforweb.xyz/docs/rspec-rails/directory_structure 指定例RSpec.describe User, type: :m...
4ヶ月前

Rails のコールバックでデフォルト値を入れるのに失敗した話
ラブグラフのエンジニアブログのフィード
ラブグラフでCTOやエンジニアをしております横江( @yokoe24 )です!ハマりがちな Rails 独特の挙動について紹介します。 前提情報(テーブル&モデル)店舗からのフードデリバリーを管理する Web アプリ で、以下のようなテーブルやモデルがあったとします。 テーブルfood_deliveries: 配達1件あたりの情報foods: 配達する食品の情報food_delivery_foods: 配達1件でお届けする食品一覧を格納する中間テーブル(以下は ridgepole の Schemafile.rb を想定)# 配達1件あたりの情報crea...
4ヶ月前

Railsとカメラの二刀流!Kaigi on Rails 2024を写真で振り返る
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです!今年も Kaigi on Rails 2024 でカメラマンをさせていただき、写真が仕上がったので、振り返っていきたいと思います。昨年の Kaigi on Rails でカメラマンをした際に書いた記事https://zenn.dev/lovegraph/articles/c85f142fb6ae01 昨年から進化していると感じたところ スポンサー企業が増えた38社 → 68社とほぼ倍! ストラップによって撮影可否を選べたRubyKaigi のようにストラップの色によって選べたので、撮影する側としても助かりました ...
4ヶ月前

モバイルからみたControllerの役割
ラブグラフのエンジニアブログのフィード
はじめにこんにちは、うらっしゅです!ラブグラフでエンジニアインターンとしてジョインし始めて、業務としては初めてRuby on Railsを触っていくことになります!(ちなみに、人生で初記事です!!)高校生の時と今ではMVCの見方が大きく違っていたのを思い出して、そのことを書こうかと思います! Railsに始めた触れた認識高校生の時にProgateでRailsを触ってみて、MVCに触れました!!当時の認識は以下の通りです。 当時の認識MVCとはModel : データモデルか。(型を定義してバリデーションするとこね。)View : ビューね。(見た目を書くとこね。...
5ヶ月前

実は簡単!RSpecでメール&ジョブをモックで華麗にテストする方法
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです!今日は Rspec でメーラーや Job をテストする方法について書いていきます。 はじめにRSpec を使って Rails アプリケーションのテストを書くとき、メール送信や非同期 Job の処理をテストすることがありますよね。しかし、実際にメールを送信したり、 Job を実行するとテストの速度が遅くなったり、不安定になることもあります。これを解決するために「モック」を使う方法が有効です。https://github.com/rspec/rspec-mocksこの記事では、 RSpec でモックを用意する 必要性 と 注意点 を...
5ヶ月前

Rails (Ruby) で Slack からのリクエストを検証するコードを置いておくよ ^o^
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフインターンの arawi です。最近 Slack から Rails アプリのリソース操作をするのにハマっています。Slack からのリクエストを検証する処理は意外とシンプルなので、コードを置いておきます。 その前に!会社紹介株式会社ラブグラフでは家族写真・七五三・カップルなどの全国出張撮影を展開しています。開発チームは Ruby on Rails を中心に Web サイトや管理画面を自社で開発しています。👇️👇️公式サイトをチェック!👇️👇️https://lovegraph.me/ TL;DRこれが Slack からのリクエスト検証コードです...
5ヶ月前

Kaigi on Rails 2024に参加してきました
ラブグラフのエンジニアブログのフィード
みなさんこんにちは!ラブグラフで開発インターンをしている浅井です!今回は学生としてKaigi on Rails 2024に初参加してきましたので、その感想を書いていきたいと思います〜!!「ブログを書くまでがカンファレンス」っていう言葉もありますので! 参加したきっかけ私は以前からPyConやRubyKaigiなどの技術カンファレンスに参加してきた技術カンファレンスオタクです。今回のKaigi on Railsは、もともと個人的に参加を検討していましたが、インターン先のラブグラフがスポンサーとして参加することもあり、より一層参加への思いが強まりました。 会場の様子今回は、...
5ヶ月前