ラブグラフのエンジニアブログのフィード

https://zenn.dev/p/lovegraph

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

フィード

記事のアイキャッチ画像
「be」と「eq」の違い、説明できる?RSpecマッチャ解説!
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです!今回は、RSpec や Capybara でよく使われるマッチャについて解説していきます。よく迷われがちな「be」と「eq」の違いにも触れていくので、ぜひ参考にしてみてください! 判定でよく使うマッチャ expect(XXX).to eqまずは、基本中の基本である 比較 のマッチャです。eq は「XXXとYYYの 値 が等しいかどうか」を判定します。データベースのレコード数や、特定のオブジェクトの属性値をチェックするときによく使います。 例1: レコード数の確認it "新しい本が作成される" do # creat...
10日前
記事のアイキャッチ画像
【100記事到達!】エンジニア3名の会社でも技術ブログをこんなに書けたよ!!🥰
ラブグラフのエンジニアブログのフィード
ラブグラフでCTOやエンジニアをしております横江( @yokoe24 )です!今日は私の誕生日です!! わーい!🍰 2023/08〜2024/12 で 100記事に到達!!!さて、この「ラブグラフのエンジニアブログ」ですが、先日公開された記事をもちまして、なんと 100記事目を迎えましたぁ!!!!!! 🥳すごぉい!!!!!!! 🙌Zenn の記事は、あとから Publication への紐づけを変えられるので、過去に投稿した人が紐づけを変えれば全然100記事未満になることもできるのですが(笑)、現時点ではこの記事が103記事目になりました!!ラブグラフはエンジニア正...
16日前
記事のアイキャッチ画像
Dirtyが原因で通知が動かない?Railsの変更検知トラブルを解決!
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです。今回は、以前紹介した ActiveRecord::AttributeMethods::Dirty を使っていく中で遭遇した問題について書いていきます。https://zenn.dev/lovegraph/articles/a1c686ccb68403!この記事はラブグラフのエンジニアブログの記念すべき100記事目です!!昨年の8月から書き始め、メンバーみんなで頑張った結果です🎉 はじめにRails では、モデルの属性が変更されたかどうかを簡単に検知できる便利な仕組みとして ActiveRecord::AttributeMet...
24日前
記事のアイキャッチ画像
追加gem無しでActiveModelの画像ファイルにバリデーションをかけたい!
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフで開発インターンをしている筒井です!今回は新規 gem を追加せずに ActiveModel で画像ファイルにバリデーションをかける方法を紹介します。 背景画像ファイルのフォーマットを JPEG だけ受けつけるようなバリデーションを実装したく、最初に出た案がfile_validatorsというgemを使うというものでした。参考:https://github.com/musaffa/file_validatorsですが、リポジトリを見てみると3年前から更新がなく、今後 Rails のバージョンを上げる際に問題が出る可能性があったため、今回は Activ...
1ヶ月前
記事のアイキャッチ画像
サンプルコードで学ぶ!RSpecでCSV機能をテストする方法
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです。今回は、CSVデータを使った機能を RSpec でどのようにテストするかについて解説します。この記事では、以下の3つのテスト方法を具体例と共に紹介します:CSVファイルを読み込む方法ヒアドキュメントでデータを直接利用する方法テンポラリファイル( Tempfile )を使う方法 CSV機能をテストする3つの手法 1. CSVファイルを読み込む方法 概要テスト用のCSVファイルを spec/fixtures ディレクトリなどに保存しておき、それを読み込んでテストする方法です。実際の運用に近い形で検証できるため、複...
1ヶ月前
記事のアイキャッチ画像
【RSpec】type は何ができる?便利なメソッドを紹介します
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです!今日は RSpec で指定できる type メタデータについてまとめます。type の仕組みを理解し、効率的なテスト設計に役立ててください。 type メタデータとは? 役割RSpec に「このテストが何を対象にしているか」を伝えるもの。Rails では、type に応じて適切なヘルパーや設定が自動で有効になります。https://rspec.toolboxforweb.xyz/docs/rspec-rails/directory_structure 指定例RSpec.describe User, type: :m...
1ヶ月前
記事のアイキャッチ画像
Rails のコールバックでデフォルト値を入れるのに失敗した話
ラブグラフのエンジニアブログのフィード
ラブグラフでCTOやエンジニアをしております横江( @yokoe24 )です!ハマりがちな Rails 独特の挙動について紹介します。 前提情報(テーブル&モデル)店舗からのフードデリバリーを管理する Web アプリ で、以下のようなテーブルやモデルがあったとします。 テーブルfood_deliveries: 配達1件あたりの情報foods: 配達する食品の情報food_delivery_foods: 配達1件でお届けする食品一覧を格納する中間テーブル(以下は ridgepole の Schemafile.rb を想定)# 配達1件あたりの情報crea...
1ヶ月前
記事のアイキャッチ画像
Railsとカメラの二刀流!Kaigi on Rails 2024を写真で振り返る
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです!今年も Kaigi on Rails 2024 でカメラマンをさせていただき、写真が仕上がったので、振り返っていきたいと思います。昨年の Kaigi on Rails でカメラマンをした際に書いた記事https://zenn.dev/lovegraph/articles/c85f142fb6ae01 昨年から進化していると感じたところ スポンサー企業が増えた38社 → 68社とほぼ倍! ストラップによって撮影可否を選べたRubyKaigi のようにストラップの色によって選べたので、撮影する側としても助かりました ...
1ヶ月前
記事のアイキャッチ画像
モバイルからみたControllerの役割
ラブグラフのエンジニアブログのフィード
はじめにこんにちは、うらっしゅです!ラブグラフでエンジニアインターンとしてジョインし始めて、業務としては初めてRuby on Railsを触っていくことになります!(ちなみに、人生で初記事です!!)高校生の時と今ではMVCの見方が大きく違っていたのを思い出して、そのことを書こうかと思います! Railsに始めた触れた認識高校生の時にProgateでRailsを触ってみて、MVCに触れました!!当時の認識は以下の通りです。 当時の認識MVCとはModel : データモデルか。(型を定義してバリデーションするとこね。)View : ビューね。(見た目を書くとこね。...
1ヶ月前
記事のアイキャッチ画像
実は簡単!RSpecでメール&ジョブをモックで華麗にテストする方法
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです!今日は Rspec でメーラーや Job をテストする方法について書いていきます。 はじめにRSpec を使って Rails アプリケーションのテストを書くとき、メール送信や非同期 Job の処理をテストすることがありますよね。しかし、実際にメールを送信したり、 Job を実行するとテストの速度が遅くなったり、不安定になることもあります。これを解決するために「モック」を使う方法が有効です。https://github.com/rspec/rspec-mocksこの記事では、 RSpec でモックを用意する 必要性 と 注意点 を...
2ヶ月前
記事のアイキャッチ画像
Rails (Ruby) で Slack からのリクエストを検証するコードを置いておくよ ^o^
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフインターンの arawi です。最近 Slack から Rails アプリのリソース操作をするのにハマっています。Slack からのリクエストを検証する処理は意外とシンプルなので、コードを置いておきます。 その前に!会社紹介株式会社ラブグラフでは家族写真・七五三・カップルなどの全国出張撮影を展開しています。開発チームは Ruby on Rails を中心に Web サイトや管理画面を自社で開発しています。👇️👇️公式サイトをチェック!👇️👇️https://lovegraph.me/ TL;DRこれが Slack からのリクエスト検証コードです...
2ヶ月前
記事のアイキャッチ画像
Kaigi on Rails 2024に参加してきました
ラブグラフのエンジニアブログのフィード
みなさんこんにちは!ラブグラフで開発インターンをしている浅井です!今回は学生としてKaigi on Rails 2024に初参加してきましたので、その感想を書いていきたいと思います〜!!「ブログを書くまでがカンファレンス」っていう言葉もありますので! 参加したきっかけ私は以前からPyConやRubyKaigiなどの技術カンファレンスに参加してきた技術カンファレンスオタクです。今回のKaigi on Railsは、もともと個人的に参加を検討していましたが、インターン先のラブグラフがスポンサーとして参加することもあり、より一層参加への思いが強まりました。 会場の様子今回は、...
2ヶ月前
記事のアイキャッチ画像
実際に会社で使っているプルリクエストのテンプレートを紹介します!
ラブグラフのエンジニアブログのフィード
ラブグラフでCTOをしております横江( @yokoe24 )です!今日は 弊社の秘伝のタレ!!プルリクエストのテンプレート をご紹介します!(以降、「プルリクテンプレ」と略します) プルリクテンプレって?まず「プルリクテンプレ」自体を初めて知る方は、以下の GitHub の公式記事をお読みください。https://docs.github.com/ja/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-yo...
3ヶ月前
記事のアイキャッチ画像
コードコメントはこう書く!WHATではなく、WHYを説明する意義とは
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです。今日はいまだに迷いながら書いているコードコメントについてです。どんなコードコメントが良いコメントとされるのか、いくつかの例をもとに一緒に考えてみましょう。 コードコメントとはそもそもコードコメントは何のために書くのでしょうか。すべてのエンジニアが読んでいる本、と言っても過言ではない「リーダブルコード」のコメントについての章ではこう書かれています。「コメントの目的は書き手の意図を読み手に知らせること」つまり、 そのコードが何をしているのか(What) ではなく、 なぜそのコードが必要なのか(Why) を書きましょう。ということ...
3ヶ月前
記事のアイキャッチ画像
【Rails】深夜にメールを送らない deliver メソッドを ActionMailer に追加する方法
ラブグラフのエンジニアブログのフィード
ラブグラフでエンジニアをしております横江( @yokoe24 )です!Rails の ActionMailer には deliver_now や deliver_later というメソッドがあります。メール送信に関して deliver_now は即時実行、deliver_later は ActiveJob で sidekiq などを介し、非同期で実行をおこないます。 深夜のメール送信を避けたいという要望ラブグラフでは、ラブグラファー(カメラマン)さんによって写真が納品されたタイミングでゲストさんに納品完了のメール送信をおこなうのですが、納品のタイミングによっては深夜にメー...
3ヶ月前
記事のアイキャッチ画像
N+1 問題を解決すりゃいいってもんでもないらしい
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフ開発インターンの arawi です。今日は Rails (ActiveRecord) を使っていると発生してしまいがちな N+1 問題についての記事です! TL;DRpreload は SQL でデータを取得したあとインスタンス化するので、大量のレコードを prelaod するととても重くなる 想定する読者N+1 問題を理解しているRails/ActiveRecord の経験がある特に、preload を使ったことがある 発端サービス上のとあるページの高速化を図るため、ページの SQL クエリを見直していました。このページで...
3ヶ月前
記事のアイキャッチ画像
【Rails】大量のデータを登録するスクリプトで気をつけたいこと
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフエンジニアのひろです。今回は大量のデータを流し込みたいときに意識するポイントを挙げていこうと思います。メモリやデータベースへの負荷をなるべく減らし、効率的なデータ登録ができるように工夫できることを考えていきましょう。 1. バッチ処理大量データの処理では、「一度に処理するデータ量」を適切に設定することが重要です。ActiveRecord の find_in_batches や in_batches 、 find_each を使うと、大量のデータをバッチ単位で処理できます。find_in_batches は指定したバッチサイズ(デフォルトは1000件)...
3ヶ月前
記事のアイキャッチ画像
データの取り出し方に喝!
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフでインターンをしている浅井です!エンジニア初心者の私も、「結果的に出力が同じだから大丈夫だろう」と考えてしまいがちです。しかし、Railsを触れる中でそのような考えは危険であるということを改めて痛感しました。今回は、その経験から得た知見を備忘録的に残しておきたいと思います。 前提例として、以下のmodelとDBのテーブルがあるとして話を進めたいと思います。class User < ApplicationRecordendcreate :users do |t| t.string :name t.string :email ...
3ヶ月前
記事のアイキャッチ画像
インターンで思いっきり失敗した話
ラブグラフのエンジニアブログのフィード
こんにちは!ラブグラフ開発インターンの筒井です!タイトル通りおぞましい話なのですが、あれはラブグラフでインターンを始めてから約1ヶ月が経とうとしていた頃でした… アサインされたタスク画像をアップロードするコンポーネントでファイルをドラッグ&ドロップもしくはドラッグ&ドロップできる範囲内をクリックすることで、ファイル参照ダイアログから選択できるはずだったのですが、どうやらドラッグ&ドロップが反応しないとのことでそこを修正するタスクにアサインされました。ざっくりコードはこんな感じ。hoge.vue<div> <div>...
4ヶ月前
記事のアイキャッチ画像
1枚ずつ違うダミー画像を ruby-vips で作って CarrierWave でアップロード!
ラブグラフのエンジニアブログのフィード
ラブグラフのエンジニア、横江( @yokoe24 )です!以前の記事で、 CarrierWave 用のカラムにデータを設定する方法を書きました。https://zenn.dev/lovegraph/articles/3484277f7a377dその記事ではカンタンにするため、以下のようなコードですべて同じ画像を設定しました。file = File.open("app/assets/images/dummy_avatar.png")User.first(100).pluck(:id).each do |user_id| UserSetting.create!(user_id...
4ヶ月前