[英]ActiveModel::Serializer not allowing me to load serializer in app/serializers
我在('app / controllers / api / v1 / companies_controller.rb')中具有以下api控制器:
class Api::V1::CompaniesController < ApplicationController
def index
companies = Company.all
render json: companies, serializer: CompanySerializer
end
end
但以上内容正在app/serializers/api/v1/company_serializer.rb
寻找Api :: V1 :: CompanySerializer。 我宁愿在app/serializers/company_serializer
有一个通用的公司序列app/serializers/company_serializer
。 我尝试使用范围解析运算符,例如:
渲染json:公司,序列化器::: CompanySerializer
但仍然出现错误。 我如何告诉我的控制器显式使用默认序列化器? 我已经看到了这个问题https://github.com/rails-api/active_model_serializers/issues/1701 ,如果这是允许的唯一行为,这似乎是一个奇怪的选择
只要您的序列化器具有默认名称,您实际上就不需要传递任何序列化器选项。 所以render json: companies
应该工作。
显式方式如下所示:
render json: companies,
serializer: CollectionSerializer,
each_serializer: CompanySerializer
注意:集合的默认序列化器是CollectionSerializer
。 在您的示例中,您尝试将CompanySerializer
传递给serializer
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.