我試圖在我的視圖中將一些數據傳遞給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