1

くそー、それはまた私です...

RocketPantsgitからの引用:

サポートactive_model_serializers- ActiveModelSerializers を使用する場合は、私たちが対応します。さらに良いことに、公開呼び出しで期待どおりにパススルーすると、:serializer呼び出しが自動的に処理されます。

それが私がやろうとしていることです:

def friends
    @user = User.find_by_id(params[:id])
    expose @user.friends.first(params[:limit].to_i), serializer: UserJustNameSerializer
end

そして、それがシリアライザーを次のように実装する方法ですuser_serializer.rb

class UserSerializer < ActiveModel::Serializer
....
end

class UserJustNameSerializer < ActiveModel::Serializer
  attributes :id, :first_name, :last_name, :full_name, :avatar_thumb

  def avatar_thumb
    object.avatar.url(:thumb)
  end
end

exposeオプションなしで使用するserializerと、 に従って適切に JSON が作成されUserSerializerます。使用しようとすると、次のUserJustNameSerializerエラーが発生します。

NameError (uninitialized constant Api::V1::UsersController::UserJustNameSerializer)

RocketPants問題は、シリアライザへの道を適切に示す方法ですか? 現在、UsersController でそれを見つけようとしています。

4

1 に答える 1