2011-09-14 35 views
0

嗨,我是新來紅寶石軌道上和使用mongoid軌道。 當我嘗試將mongoid對象轉換爲json時,會跳過帶有nil值的屬性。to_json跳過無值的屬性

ruby-1.9.2-p180 :019 >@task 
=> #<Task _id: 4e707635c7b4700ce3000004, _type: "Task", created_at: 2011-09-14  09:39:01 UTC, updated_at: 2011-09-14 09:39:01 UTC, due_date: nil, is_completed: false, assignee_id: nil, description: "hi remind this ", user_id: BSON::ObjectId('4e4d1aeac7b4700c6e000096'), item_id: BSON::ObjectId('4e53585fc7b4701082000002')> 

@task.to_json(:only=>[:due_date]) 
=> "{}" 

有沒有什麼辦法讓像"{\"due_date\":\"null\"}"

回答

0

要做到這一點,最簡單的方法是重寫的due_date檢索。

在模型中試試這個:

def due_date 
    real_value = self[:due_date] 
    return real_value unless real_value.nil? 
    return "null" 
end 
+0

我有這個code.when試過我稱之爲「DUE_DATE」直接我得到「空」如果「DUE_DATE」零但是調用JSON方法一樣,當不謝謝你的幫助。 –

+0

嗯,它爲我工作。解決方法是,在你的json選項 – apneadiving

+0

中使用:':methods =>:due_date'和':except =>:due_date'!它的工作,感謝很多。 –