Это потому, что get()
.
Вы должны попробовать DailyReport::latest()->paginate(10)
Только быть ясным код выше работ с: включайте и: кроме. И работами я подразумеваю, что это не бросает ошибку. Проблема - это, включает комментарии для каждой статьи в индексе. Я только надеюсь включать комментарии для: объект и не любая из статей перечислен в индексе.
я не мог заставить вложение работать хешем или объектом OpenStruct.
Вложение на: включайте бросает ошибку, вложение на: кроме не бросает ошибку, но ничто не отфильтровано: created_at, и т.д. все еще обнаружьтесь.
...
@response = { :item => @article, :index => @index }
format.js { render :json => @response.to_json(
:except => {:item => [ :created_at, :updated_at, :draft, :id, :publish ]},
:include => { :item => {
:comments => {
:only => [:body]
}
}}),
:callback => params[:callback]}
end
Необходимо быть в состоянии вложить :include
, :except
, и т.д. как так:
:except => {:item => [ :created_at, :updated_at, :draft, :id, :publish ]}...
, Если это не работает, сделайте это объектом (например, OpenStruct) вместо хеша.
- Markus
to_json имеет параметр: method, который включает результат любого метода, который вы называете, вы можете определить метод в этой модели, который возвращает дополнительные данные вы хотите в своем JSON.
Вы намекаете на решение своего вопроса. Скорее всего, вы захотите создать хеш для рендеринга в JSON. Предпочтительный способ сделать это сейчас - предоставить реализацию для метода as_json. as_json предоставляет формальные средства настройки вывода to_json путем создания хэша, содержащего данные, которые вы хотите кодировать.
Более подробное описание взаимодействия as_json и to_json можно найти в блоге Джонатана Джулиана .