Rails与ActiveRecord :: Serializer的范围问题

时间:2016-04-18 14:29:55

标签: ruby-on-rails ruby serialization

我对rails很新,我刚刚发现了序列化程序。

我继续执行我的一个模型。我用

生成了一个序列化器
rails g serializer MyModel

然后在我的控制器中,在我的函数中呈现我的数据:

render json: MyModel.where(...), each_serializer: MyModelSerializer, root: false
# note : that's the only line in my function

最后我的序列化器:

class MyModelSerializer < ActiveModel::Serializer
  attributes :id, :name, ... # all attributes in my model, I double-checked
end

我现在从rails服务器获得的错误如下:

uninitialized constant MyModelController::MyModelSerializer

我错过了什么吗? :(

感谢您的帮助:)

顺便说一句,我补充说,应该使用来自视图的ajax请求调用应该使用序列化程序呈现json的函数。不知道它是否改变了事情......

1 个答案:

答案 0 :(得分:0)

尝试在控制器代码中更改此位:

each_serializer: ::MyModelSerializer

两个冒号基本上强制Ruby解释器在“root”中查找MyModelSerializer类,而不是MyModelController内。从您的错误消息,这似乎是问题。