I have a model called Todo and I render this:
format.json { render :json => @todo }
Each Todo belongs_to a List. I want to add the value of @todo.list.completion_percentage
to the JSON as I need this to update the UI (AJAX request), so the JSON looks something like this:
{
"todo": {
"created_at": "2011-02-26T19:39:43Z",
"updated_at": "2011-02-26T19:53:13Z",
"done": true,
"text": "Apples",
"id": 10,
"list_id": 2,
"user_id": 1,
"due_date": null
// BELOW THIS LINE SHOULD BE IMPLEMENTED
"list": {
"completion_percentage": 63
}
}
}
I have tried various things but none worked. Can anyone help me?
To refine Brandon's answer, try using:
Just so others are aware, calling @todo.attributes will pull off custom methods on attributes. E.g., if you have in your Todo model a method
And an attribute called written_date on the Todo Model, only the attribute will come back that is stored in the database.
And you except the custom method to come back when you call
@todo.attributes
, it will not.You may want to capture the value of the JSON data, and then modify it.