アクティブ モデルシリアライザーを使用しています。has_many アクティビティのモデル イベントがあります。
最初の n 個のアクティビティでイベントを返したいです。params n をイベントシリアライザーに渡す必要があると思います。
アクティブ モデルシリアライザーを使用しています。has_many アクティビティのモデル イベントがあります。
最初の n 個のアクティビティでイベントを返したいです。params n をイベントシリアライザーに渡す必要があると思います。
渡されたオプションは、@options
ハッシュを通じて利用できます。したがって、次のようにします。
respond_with @event, activity_count: 5
シリアライザー内で使用できます@options[:activity_count]
。
@options
ハッシュは で削除されました0.9
。同等のメソッドが最近追加されたようです-
def action
render json: @model, option_name: value
end
class ModelSerializer::ActiveModel::Serializer
def some_method
puts serialization_options[:option_name]
end
end
0.9.3 を使用すると、 #serialization_options を次のように使用できます...
# app/serializers/paginated_form_serializer.rb
class PaginatedFormSerializer < ActiveModel::Serializer
attributes :rows, :total_count
def rows
object.map { |o| FormSerializer.new(o) }
end
def total_count
serialization_options[:total_count]
end
end
# app/controllers/api/forms_controller.rb
class Api::FormsController < Api::ApiController
def index
forms = Form.page(params[:page_index]).per(params[:page_size])
render json: forms, serializer: PaginatedFormSerializer, total_count: Form.count, status: :ok
end
end
serialization_optionsは、Active Model Serialization 0.9.3 でうまく機能します。
render コマンドとともに渡されるオプションは、キーを使用してシリアライザーでアクセスできます -> serialization_options[:key]
簡単な方法は、イベント シリアライザーにアクティビティ メソッドを追加し、n 個のアクティビティを返すだけです。それだ。
class EventSerializer < ActiveModel::Serializer
has_many :activities
def activities
object.activities[0..9] # Select whatever you want
end
end