to_json中的Mongoid虚拟属性
我试图让一些虚拟(非持久)属性显示在一些Mongoid模型的JSON表示中,但似乎无法让它工作:
class MyModel include Mongoid::Document def virtual_attribute @my_attribute || false end def virtual_attribute=(value) @my_attribute=value end end class MyController def myaction false_values=MyModel.where( whatever ) true_values=MyModel.where( something_else ).map{ |model| model.virtual_attribute=true } @val['my_models']=false_values+true_values render json: @val.to_json( :include => {:my_models => {:methods => %w(virtual_attribute)}} ) end end
virtual_attribute
不会出现在json中。 我究竟做错了什么?
编辑 – 好吧,所以我想我的实际问题是我无法弄清楚如何在嵌套在根对象中的每个对象数组上调用virtual_attribute
方法。
to_json
将选项直接传递给数组和对象。 :include
只是一个Mongoid的东西:
render json: @val.to_json(methods: :virtual_attribute)
- ActionView :: Template :: Error(在heroku上没有将Fixnum隐式转换为String
- mongoid,调用sub mapreduce的语法
- 使用从其他(mongoid / rails)inheritance的名称空间和引用模型的正确方法是什么?
- Ruby / rails:mongoid with mongo(gem); 一场激烈的冲突? 如何处理不同的版本?
- 当我将我的应用程序推送到Heroku时,为什么我收到错误500“我们很抱歉,但出了点问题”?
- MongoDB和Mongoid正在制作中
- 为什么安装bson_ext会出错?
- 未定义的# kaminari“page”错误的方法页面。 rails_admin
- 检索Mongoid中的id数组