gpt4 book ai didi

ruby-on-rails-4 - 主动模型序列化器和耐嚼

转载 作者:行者123 更新时间:2023-12-02 23:39:01 26 4
gpt4 key购买 nike

我有一个使用AMS和Chewy的Rails 4项目。

如果我将AMS定义为默认值,则可以序列化。但是,如果我使用自定义AMS,则会收到错误消息:NoMethodError (undefined method 'read_attribute_for_serialization' for #<Chewy::Query:0x000000060c1da8>)
代码(工作正常):

@search = Search.new(params)
@results = @search.query.load
render json: @results

代码(中断):
@search = Search.new(params)
@results = @search.query.load
render json: @results, serializer: MySerializer

我编写的默认模型序列化程序和 MySerializer都相同。那里也没有幻想。
class MySerializer < ActiveModel::Serializer
attributes :my_attribute, :other_attribute

has_one :thing

end

我已经尝试过修补Chewy::Query:
module Chewy
class Query
alias_method :read_attribute_for_serialization, :send
end
end

但我只得到 NoMethodError (undefined method 'my_attribute' for #<Chewy::Query:0x000000069af5c8>)

最佳答案

原来应该是
render json: @results, each_serializer: MySerializer
因为它正在尝试使用单对象序列化程序序列化集合。

关于ruby-on-rails-4 - 主动模型序列化器和耐嚼,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25965779/

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