Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 尝试升级rails依赖项会导致序列化程序引发错误:未定义的方法'model_name';哈希:Clas_Ruby On Rails_Json_Serialization_Active Model Serializers - Fatal编程技术网

Ruby on rails 尝试升级rails依赖项会导致序列化程序引发错误:未定义的方法'model_name';哈希:Clas

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

几个月前,我在一个已建立的rails应用程序上将rails升级到了5.2.4.2,并进行了最低限度的rails依赖性升级;应用程序再次稳定下来,因此我们决定将所有rails依赖项升级到其最新兼容版本

现在,每当控制器对简单(非db模型)类进行json呈现调用时,就会显示一条错误消息

范例

这是序列化程序:

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中找到解决方案?