ruby-on-rails – JSONAPI资源:序列化命名空间模型
发布时间:2020-12-17 01:35:33 所属栏目:百科 来源:网络整理
导读:我正在尝试在Rails引擎中使用 JSONAPI Resources,我在doki_core / app / resources / tenant.rb中定义了DokiCore :: Tenant(模型),在doki_core / app / resources / tenant_resource.rb中定义了DokiCore :: TenantResource.当我尝试序列化为哈希时,我遇到以
我正在尝试在Rails引擎中使用
JSONAPI Resources,我在doki_core / app / resources / tenant.rb中定义了DokiCore :: Tenant(模型),在doki_core / app / resources / tenant_resource.rb中定义了DokiCore :: TenantResource.当我尝试序列化为哈希时,我遇到以下错误:
资源使用model_name让它知道模型的实际位置: module DokiCore class TenantResource < JSONAPI::Resource model_name 'DokiCore::Tenant' # ... end end 我正在尝试输出像这样的租户的哈希: tenant = DokiCore::Tenant.find(1); resource = DokiCore::TenantResource.new(tenant,nil); serializer = JSONAPI::ResourceSerializer.new(DokiCore::TenantResource); serializer.serialize_to_hash(resource); 这是错误发生的地方. 如何让链接正常工作和/或禁用它们?我假设它在那里它将资源的URL添加为输出的json中“links”键下的链接. 解决方法
对此进行排序.如果您的路由以任何方式命名空间,则您的资源也需要命名空间才能匹配.我的路线看起来像:
namespace :api do namespace :v1 do resources :tenants end end 所以资源需要以相同的方式命名空间: tenant = DokiCore::Tenant.find(1); resource = DokiCore::API::V1::TenantResource.new(tenant,nil); serializer = JSONAPI::ResourceSerializer.new(DokiCore::API::V1::TenantResource); serializer.serialize_to_hash(resource); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |