2011-09-14 3 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

私は同じにJSONメソッドを呼び出すときに、直接i「がDUE_DATE」nilの場合は、「ヌル」を取得しなくています「DUE_DATE」と呼ぶこのcode.whenで試してみましたあなたの助けをありがとう。 –

+0

Mmm、それは私のために働いた。あなたのjsonオプションで ':methods =>:due_date'と ':except =>:due_date'を使用してください。 – apneadiving

+0

素晴らしい!それは働いた。たくさんありがとう。 –

関連する問題