前提 以下のように定義されていて、そのまま返したいだけの場合です。 @hello = { foo: [ { a: "b"}, { c: "d"}, ], (以下省略) 結論 json.merge! @hello
active_model_serializers (AMS) rails-api/active_model_serializers: ActiveModel::Serializer implementation and Rails hooks は積極的にメンテナンスがされない宣言がされており、かつ、高機能で複雑な処理があるため、将来のRailsバージョンアップの障害となるリスクがあります。そのため、AMSライブラリを剥がす検討をしました。 切り替え候補とそれらの評価は以下。 jbuilder Rails標準なので安心感がある AMSからは差分が大きいので移行が大変 ActiveModel::S…
この記事は 食べログアドベントカレンダー2024 の6日目の記事です🎅🎄 はじめに こんにちは。2022年に入社し、飲食店システム開発部の予約サービスチームに所属している @aaknsk です。 当社では、業務効率化のため社内向けに生成AIを活用したチャットボットを導入しています。 この記事では、オンライン台帳の「食べログノート」で分析機能を開発したときにチャットボットを活用して効率が上がった事例について紹介します。 食べログノートとは 食べログノートはオンライン予約台帳サービスです。 食べログネット予約はもちろん、電話予約や他社ネット予約、ウォークイン(ご予約無し来店)も全て統合管理できます…
2024/09/14分のコミットです。 CHANGELOGにのったコミットは以下の通りです。 activesupport/CHANGELOG.md Print test names when running rails test -v for parallel tests activerecord/CHANGELOG.md Add support for PostgreSQL IF NOT EXISTS via the :if_not_exists option on the add_enum_value method. Merge pull request #52892 from Shopi…
Railsのインストールと設定 Railsについて、インストールや設定などの土台となるような知識をまとめました。 バージョン 説明の前提となるRubyとRailsのバージョンは以下の通り。 Ruby 3.2.2 Rails 7.1.2 Railsとは Railsとは、MVCアーキテクチャに基づくRubyのWebアプリケーションフレームワーク。 MVCとは、 MVCとは、アプリをModel、View、Controllerという3つの構造に分けた設計方法のこと。 Modelはデータベースとやり取りを行い、主にデータの処理やビジネスロジックを担当する。 Viewはアプリの表示の部分を担当する。 Co…
はじめに RSpec + Shrine の環境のテストで updated_at がうまく設定できない事象を調査・解消したので備忘としてまとめておきます。 起こった問題 問題がなかった状態 以下のようなモデル・コントローラーを作りました。 モデル: class Article < ApplicationRecord end コントローラー class ArticlesController < ApplicationController def index @articles = Article.all.order(:updated_at) end end このモデル・コントローラーに対して、以下…
こんにちは、M-Yamashitaです。 あっというまに6月になりました。日が経つ速度がだんだんスピードアップしている気がします。 それでは5月の振り返りです。 インプット 今月のインプットはありません。 アウトプット 記事 私の所属会社のブログとして、1件投稿しました。RubyKaigi 2024の参加レポートです。 moneyforward-dev.jp この記事には個人的な出来事は書いていませんが、ブースやセッション以外でもいろんな方とお話しできました。 初日のBBQにて初めましての方々に話しかけに行なってお互いの仕事の話やプライベートの話をしたり、ランチに1人で並んでいたときに後ろに並…
Puma を使ったアプリケーションを触っているのですが、Puma についてわかっていないので少しドキュメントを読んだり動かしたりしたメモです
タイトル通りです。 --force-pluralオプションを使用して複数形を使ったモデル名のscaffoldを行う rails g scaffold JazzCafes name:string --force-pluralを実行。 ポイント --force-pluralオプションを使ったので、モデルのファイル名が複数形のapp/models/jazz_cafes.rbになっている。 指定しないと単数系のjazz_cafe.rbとなる。 ❯ rails g scaffold JazzCafes name:string --force-plural invoke active_record cre…
Rubyの続きです。前回はRubyの分岐や反復など制御構造について書きました。今回からはWebフレームワークRuby on Railsに入っていきます!Railsチュートリアルにトライします。初回は環境構築編です。それではいきましょう!
開発中のソースコードは、コンテナ内のファイルシステムに置くのではなく、ホストシステムのディレクトリで行うのが通常だそうです。 開発中は、「ボリュームマウンティング」という方法を用いて、そのファイルをコンテナ内の特定ディレクトリに反映させて実行させることになるそうです。 ウェブサーバーのポートも同様に、「ポートフォワーディング」という手法で、ホストシステムのポートをコンテナのポートに結びつけて実行するとのこと。 例: docker run -p 4567:4567 -v $(pwd):/app sinatra-app コンテナは、ホストシステムとは異なる「島」のようなものということのようです。 …
こんにちは、技術本部 Eight Engineering Unit でエンジニアをやっている茂木(@shinnopo_)です。 今回は前回のブログで執筆した、ローカル環境で Lint をかける機構を利用して、pre-commit 時にシークレットスキャンを行うようにした話をしていきます。 前回のブログはこちら↓ buildersbox.corp-sansan.com
↓↓クリックして頂けると励みになります。ランキング参加中プログラミング 【23 | Gメール】 ホーム】 >> 【25 | ユーザー管理】 作成したユーザーがログインすることでユーザーの管理機能を使えるように実装します。 まず管理用のユーザ名とパスワードを格納するモデルとデータベーステーブルの作成から始めます。 Digestとは、ハッシュ値を作成するためのモジュールです。 Digestを使えば、ハッシュ値を生成することができます。 ハッシュ値とは、変換して得られるデータです。 データを一方向にしか変換できないのが特徴で、ハッシュ値から元のデータを復元したり、推測したりできないようになっています…
↓↓クリックして頂けると励みになります。ランキング参加中プログラミング 【21 | アクションケーブル(ActionCable)】 ホーム】 >> 【23 | Gメール】 カートに入れた商品を購入できるようにチェックアウト機能を実装します。 ここでは、以下の機能を実装します。 フォームからの値を取得して新しいOrderモデルオブジェクトに格納する。 カートに入っているLineItemをその注文に追加する。 注文のデータが正当かどうかを検証して保存する。注文データが不正である場合はエラーメッセージを表示してユーザに修正を求める。 注文が正常に保存されたらカートを削除し、カタログページを再表示して…
↓↓クリックして頂けると励みになります。ランキング参加中プログラミング 【13 | 買い物ビューの作成】 ホーム】 >> 【15 | セッションカートの改良】 商品をセッションカートという一時的な保存場所に格納出来るようなシステムを作っていきます。 Railsではアクセスしている人が実行するすべての操作を追跡できるようにするためにsessionと呼ばれるものを使用しています。 sessionはコントローラ内にハッシュに似たような形で保持しています。 この機能を使って商品を格納するためのカートを作成してみます。 ターミナルでrails generate scaffold cartと入力します。 …
はじめに Rails Tips の 48 回目です。昨日は RSpec と Guard をインストールしました。次に進みたいところですが、まだ view が erb のままでした。小林研では記述を簡単にするために、erb ではなく haml を使っています。今回は、既存の erb を haml に変更したいと思います。 Rails をはじめよう - Railsガイド erb から haml に変換 haml-rails が入っていると rails のコマンドで erb ファイルを haml に変換できます。rails のコマンドはいつものように help で確認します。 $ rails --h…