Ruby on rails 尝试升级rails依赖项会导致序列化程序引发错误:未定义的方法'model_name';哈希:Clas
几个月前,我在一个已建立的rails应用程序上将rails升级到了5.2.4.2,并进行了最低限度的rails依赖性升级;应用程序再次稳定下来,因此我们决定将所有rails依赖项升级到其最新兼容版本 现在,每当控制器对简单(非db模型)类进行json呈现调用时,就会显示一条错误消息 范例 这是序列化程序:Ruby on rails 尝试升级rails依赖项会导致序列化程序引发错误:未定义的方法'model_name';哈希:Clas,ruby-on-rails,json,serialization,active-model-serializers,Ruby On Rails,Json,Serialization,Active Model Serializers,几个月前,我在一个已建立的rails应用程序上将rails升级到了5.2.4.2,并进行了最低限度的rails依赖性升级;应用程序再次稳定下来,因此我们决定将所有rails依赖项升级到其最新兼容版本 现在,每当控制器对简单(非db模型)类进行json呈现调用时,就会显示一条错误消息 范例 这是序列化程序: class Api::MessageResponseSerializer < ApplicationSerializer self.version = 1 attributes
class Api::MessageResponseSerializer < ApplicationSerializer
self.version = 1
attributes :message, :changes
def message
self.object[:message]
end
def changes
self.object[:changes]
end
end
我得到一个错误:
NoMethodError:
undefined method `model_name' for Hash:Class
NoMethodError:
undefined method `model_name' for Array:Class
NoMethodError:
undefined method `model_name' for Integer:Class
召唤
render :json => [{ :message => "Not Ready Yet"}], :serializer => Api::MessageResponseSerializer
我得到一个错误:
NoMethodError:
undefined method `model_name' for Hash:Class
NoMethodError:
undefined method `model_name' for Array:Class
NoMethodError:
undefined method `model_name' for Integer:Class
调用(我知道这不是正确的json,这里只是举例说明同样的错误发生)
我得到一个错误:
NoMethodError:
undefined method `model_name' for Hash:Class
NoMethodError:
undefined method `model_name' for Array:Class
NoMethodError:
undefined method `model_name' for Integer:Class
我可以对这些类进行修补,但我更希望有一个解决方案,允许序列化程序从这些简单的类中获取模型名称 对于JSON序列化有一个根键似乎有一个严格的要求,它是作为0.10.10版(由bundle升级自动设置)上的gem的一部分引入的
我将这个gem降级到0.10.9版本,序列化问题停止了…但是0.10.9不支持rails 6。您是否能够在rails 6中找到解决方案?