提问人:Unik6065 提问时间:9/16/2023 更新时间:9/16/2023 访问量:57
如何访问与 JSON:API 序列化程序的关系
How to access relationship with JSON:API serializer
问:
我目前正在开发一个使用 ruby on rails 和 React 的评论系统。一切正常,我的用户可以发表评论,产品可以收到评论。但现在我有一个问题。 这是我的三个模型:
产品
class Product< ApplicationRecord
has_many :comments
end
用户
class User < ApplicationRecord
has_many :comments
end
和评论
class Comment < ApplicationRecord
belongs_to :Product
belongs_to :user
end
现在,我想使用 JSONAPI::Serializer 在产品页面上显示呈现产品。
因此,我调用 ProductSerializer:
def show
render json: ProductSerializer.new(@product, { include: [:comments] })
end
下面是 ProductSerializer:
class ProductSerializer
include JSONAPI::Serializer
attributes :id, :created_at, :description
has_many :comments
end
(我在这里关注了github上的官方文档:https://github.com/jsonapi-serializer/jsonapi-serializer)
所以现在的问题是:为什么 JSON 响应不包含注释?我也试过:
class ProductSerializer
include JSONAPI::Serializer
attributes :id, :created_at, :description
has_many :comments, serializer: CommentSerializer
end
但它仍然不起作用......如果我在序列化程序的属性中包含注释,如下所示:
class ProductSerializer
include JSONAPI::Serializer
attributes :id, :created_at, :description, :comments
end
我确实收到了评论列表,但我得到的不是 User 对象,而是User_id,这不是我想要的。
我正在使用 rails 7.0.6 和 jsonapi-serializer 2.2.0
答: 暂无答案
评论
belongs_to :product
- 除了 ClassNames 和 CONSTANTS 之外,Rails(以及一般的 Ruby)中的所有内容都应该snake_case。这包括您的关联名称。