ActiveModel::Serializer::Adapter.create(serializer_object, включает: ‘*,user.**’).to_json

#ruby-on-rails #ruby-on-rails-4 #serialization

#ruby-on-rails #ruby-on-rails-4 #сериализация

Вопрос:

 ActiveModel::Serializer::Adapter.create(serializer_object, include: '*,user.**').to_json
 

Я понимаю код, но не понимаю значения ‘*, user.‘ ** .

Может ли кто-нибудь объяснить это ‘*,user.‘ ** ?

Вопрос 2

Я хочу добавить ссылки в include, как я могу это сделать?

Комментарии:

1. Работает ли это?

2. Да, это рабочее состояние. Эта строка занимает слишком много времени (например, 27 секунд).). Я хочу сократить до 2 секунд. так что я задаю этот вопрос.

3. попробуйте включить только те ссылки, которые вам нужны.

4. Две секунды на рендеринг сериализатора? Ты с ума сошел?

5. @sergio-tulentsev не получает. можете ли вы дать мне синтаксис?

Ответ №1:

https://github.com/rails-api/active_model_serializers/blob/master/docs/general/adapters.md

Это

 include: '*,user.**'
 

означает «включить все непосредственные ссылки на текущий объект, а также все ссылки (рекурсивно) на его user свойство.

Это выглядит не очень эффективно (пользовательский класс, как правило, является объектом god в каждом приложении). Попробуйте включить только те ссылки, которые вам действительно нужны. Что-то вроде

 include: 'user,owner,whatever'
# or 
include: [:user, :owner, :whatever]