0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

記事投稿キャンペーン 「Rails強化月間」

Railsのserializerについて調べてみた!

Posted at

serializerとは

serializerは、アプリケーションのデータをJSONやXMLなどのフォーマットに変換する際に非常に役立つ。serializerの基本的な使い方と、データの整形やカスタマイズ方法について解説します。

1. インストールと設定

serializerを使うには、

  1. インストール: Rails アプリケーションにはデフォルトで active_model_serializers が含まれていないので、Gemfile に追加してインストールします。

    gem 'active_model_serializers'
    

    インストール後、bundle install コマンドを実行してパッケージをインストールします。

  2. serializerの作成: serializerは、app/serializers ディレクトリに作成します。モデルごとに対応するserializerを作成することが一般的。

2. serializerの作成と基本的な使い方

  1. serializerの生成: serializerを生成するには、以下のコマンドを実行します。

    rails generate serializer ModelName
    

    これにより、app/serializers/model_name_serializer.rb ファイルが作成されます。

  2. serializerの設定: serializerファイルで、シリアライズする属性を定義します。

    # app/serializers/model_name_serializer.rb
    
    class ModelNameSerializer < ActiveModel::Serializer
      attributes :id, :name, :created_at
    end
    

    ここでは、:id:name:created_at の属性をシリアライズしています。

  3. シリアライズの呼び出し: コントローラや API のエンドポイントで、シリアライザを呼び出してデータを整形します。

    class SomeController < ApplicationController
      def show
        @model = Model.find(params[:id])
        render json: @model, serializer: ModelNameSerializer
      end
    end
    

    これにより、ModelNameSerializer を使用してデータが JSON 形式でレスポンスされます。

3. 関連データのシリアライズ

関連するモデルのデータをシリアライズすることも可能です。例えば、ユーザが持つ複数の投稿をシリアライズする場合は、以下のようにします。

class UserSerializer < ActiveModel::Serializer
  attributes :id, :name
  has_many :posts
end

参考

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?