2010-10-29 3 views
1

В моем контроллере я есть:Rails Json ответ помощь

@photo = Photo.find(:all) 

respond_to do |format| 
... 
format.json { render :json => @photo.to_json) 

end 

так что мой ответ выглядит следующим образом:

{ 
     "photo": 
     { 
      "updated_at":"2010-10-14T19:12:35Z", 
      "photo_file_size":206422, 
      "created_at":"2010-10-14T19:12:01Z" 
     } 
    }, 
    { 
     "photo": 
     { 
      "updated_at":"2010-10-16T18:19:38Z", 
      "photo_file_size":83593, 
      "created_at":"2010-10-14T19:14:35Z" 
     } 
    } 

, как я могу добавить дополнительный JSon пару ключей значение для каждого блока фото? что-то вроде:

"photo": 
     { 
      "updated_at":"2010-10-14T19:12:35Z", 
      "photo_file_size":206422, 
      "created_at":"2010-10-14T19:12:01Z" 
---->  "created_at_b":"2010/10/14" 
     } 

может быть :include вариант?

спасибо!

ответ

2

to_json можно сделать, чтобы включить результат любого метода, доступного на вашей модели. Например, вы можете добавить следующий метод для вашей модели:

class Photo < ActiveRecord::Base 
    def created_at_b 
    # whatever you want to do 
    end 
end 

В контроллере добавить:

format.json { render :json => @photo.to_json(:methods=>[:created_at_b]) 

Это должно вернуть JSON, что вы после этого.

+0

Как я могу добавить в каждую фотографию поле «created_at_b»? – Lamp

+0

Вот для чего нужен первый блок кода, вы бы поместили это определение метода в свой класс модели. Я отредактировал ответ, так что это немного более понятно – NZKoz

Смежные вопросы