gpt4 book ai didi

ruby-on-rails-4 - 将局部变量从 Controller 传递到事件模型序列化程序

转载 作者:行者123 更新时间:2023-12-04 19:50:34 28 4
gpt4 key购买 nike

我正在尝试将 locals(prod: @product.id) 传递到我的 Controller 中的 AMS,如下所示:

@options_json = ActiveModel::SerializableResource.new(@option_types, prod: @product.id)
@options_json = @options_json.to_json(serialization_context: ActiveModelSerializers::SerializationContext.new(request), serialization_options: {prod: @product.id})

我不确定是在初始化期间还是在调用 to_json 时传递它。此外,我无法在我的 OptionTypeSerializer 中读取这个传递的参数。我尝试过使用 options[:prod]serialization_options[:prod]serialization_opts[:prod] 和一些不同的解决方案在 stackoverflow 上找到,但没有工作。我的 AMS 指向 master,在我的 gemfile.lock 中,AMS 版本是 active_model_serializers (0.10.0.rc5)

还尝试使用:

@options_json = ActiveModel::SerializableResource.new(@option_types, serialization_context: ActiveModelSerializers::SerializationContext.new(request), prod: @product.id).to_json

但获取 instance_options[:prod] 的值为 null,尽管它不是 null

最佳答案

每当我需要将选项传递给序列化程序时,我都会做这样的事情:

# Controller
class CatalogPagesController < ApplicationController

# GET /catalog_pages/event/:id
def event
@catalog_pages = @event.catalog_pages
render json: @catalog_pages, index: true, each_serializer: Adm::CatalogPageSerializer
end
end

# Serializer
class CatalogPageSerializer < Adm::FormSerializer
attributes :id, :body, :catalog_page_templates

def include_catalog_page_templates?
return true unless @options[:index].present?
end
end

在这个例子中,当来自索引路由时,我想有条件地不返回 JSON 的某些元素。

关于ruby-on-rails-4 - 将局部变量从 Controller 传递到事件模型序列化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37882434/

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