Ruby on Rails усовершенствованная сериализация JSON

Это потому, что get().

Вы должны попробовать DailyReport::latest()->paginate(10)

18
задан nneonneo 29 March 2013 в 18:41
поделиться

4 ответа

Только быть ясным код выше работ с: включайте и: кроме. И работами я подразумеваю, что это не бросает ошибку. Проблема - это, включает комментарии для каждой статьи в индексе. Я только надеюсь включать комментарии для: объект и не любая из статей перечислен в индексе.

я не мог заставить вложение работать хешем или объектом 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
2
ответ дан 30 November 2019 в 07:44
поделиться

Необходимо быть в состоянии вложить :include, :except, и т.д. как так:

:except => {:item => [ :created_at, :updated_at, :draft, :id, :publish ]}...

, Если это не работает, сделайте это объектом (например, OpenStruct) вместо хеша.

- Markus

1
ответ дан 30 November 2019 в 07:44
поделиться

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

1
ответ дан 30 November 2019 в 07:44
поделиться

Вы намекаете на решение своего вопроса. Скорее всего, вы захотите создать хеш для рендеринга в JSON. Предпочтительный способ сделать это сейчас - предоставить реализацию для метода as_json. as_json предоставляет формальные средства настройки вывода to_json путем создания хэша, содержащего данные, которые вы хотите кодировать.

Более подробное описание взаимодействия as_json и to_json можно найти в блоге Джонатана Джулиана .

28
ответ дан 30 November 2019 в 07:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: