gpt4 book ai didi

ruby-on-rails - 如何将参数从 Controller 传递到我的序列化程序?

转载 作者:行者123 更新时间:2023-12-01 12:42:25 27 4
gpt4 key购买 nike

对于 JSON API,我需要将 url 参数传递给我的序列化:

http://mydomain.com/api/categories?name=news&counter=123

这是我的 API Controller :

class Api::CategoriesController <  ApplicationController
respond_to :json
def index
respond_with Category.where("name ==? AND content_counter >?", params[:name], params[:counter].to_i)
end
end

我的序列化器看起来像这样:

class CategorySerializer < ActiveModel::Serializer
attributes :id, :name, :content_counter
has_many :chapters

def chapters
object.chapters.active.with_counter(???)
end
end

在我的章节模型中,我有一个范围:

scope :with_counter, lambda { |counter| where("content_counter >?", counter.to_i) }

如何将计数器值 123 传递给 (???)这可能吗?

如有任何帮助,我们将不胜感激。

最佳答案

您可以像这样使用@options 对象将值传递给activemodel 序列化程序:

class Api::CategoriesController <  ApplicationController
respond_to :json
def index
respond_with Category.where("name ==? AND content_counter >?", params[:name], params[:counter].to_i),
counter_value: params[:counter]
end
end

class CategorySerializer < ActiveModel::Serializer
attributes :id, :name, :content_counter
has_many :chapters

def chapters
object.chapters.active.with_counter(@options[:counter_value])
end
end

关于ruby-on-rails - 如何将参数从 Controller 传递到我的序列化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23079307/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com