我试图在我的视图中将一些数据传递给javascript。我只想要数组中对象的某些属性。Rails 3:呈现JSON中的对象数组的某些属性
json gem似乎不支持:only
选项。我试图用的ActiveSupport :: JSON
<script>
test1=<%=raw ActiveSupport::JSON.encode(@sectionDatas.values, :only => [ :left, :width ])%>;
</script>
但忽略了:only
,并打印整个对象。
然后,我以为我会聪明,从控制器采取render
方法:
test2=<%=raw render :json => @sections.as_json(:only => [:left, :width])%>
,但我得到无:Nilclass错误。
我也试图把这个在我的模型和运行to_json:
include ActiveModel::Serialization::JSON
def attributes
@attributes ||= {'left' => 0, 'width'=>0}
end
同样,这忽略了属性的方法和序列化整个对象。
当然,这一定很简单。我错过了什么?
这不会导致额外的数据库查询我已经有的数据吗? – bcoughlan 2011-03-21 22:32:56
我假设你会用我建议的代码替换它。 – s84 2011-03-21 22:35:02
是的,但我也需要完整的对象,没有看到用于额外查询我已有的数据。另外我在.select上找不到任何文档,它是ActiveRecord的一部分吗? – bcoughlan 2011-03-21 22:40:00