Попытка отобразить список контактов из API, используя драгоценный камень, но может получить только несколько полей для отображения

Я пытаюсь отобразить список всех контактов из HubSpot API ( https://developers.hubspot.com/docs/methods/contacts/get_contacts) в таблице. Я использую камень https://github.com/adimichele/hubspot-ruby который был в основном полезен. Мне удалось получить большую часть информации для отображения с помощью следующего кода:

<div class ="container-fluid text-center">
<div class="row">
    <h1>Contacts</h1>
</div>
<br />

<table class="table">
    <thead>
        <tr>
            <th scope="col">First Name</th>
            <th scope="col">Last Name</th>
            <th scope="col">Company</th>
            <th scope="col">Email</th>
        </tr>
    </thead>    
    <tbody>

        <% 
            (Hubspot::Contact.all).each do |contact|
            info = contact.properties
        %>
        <%= info %>
                <tr>
                    <th scope="row"><%= info[:firstname] %></th>
                    <th scope="row"><%= info[:lastname] %></th>
                    <th scope="row"><%= info[:company] %></th>
                </tr>
        <% end %>
    </tbody>
</table>

Однако по умолчанию драгоценный камень отображает только 3 свойства для контакта. Хотя HubSpot API отправляет больше, например, электронную почту, у меня возникают проблемы с выбором и выбором свойств, которые я хочу. Мне удалось самостоятельно выбрать свойство электронной почты:

 <tbody>

        <% 
            ( Hubspot::Contact.all({ property: 'email' }) ).each do |contact|
            info = contact.properties
        %>
        <%= info %>
                <tr>
                    <th scope="row"><%= info[:firstname] %></th>
                    <th scope="row"><%= info[:lastname] %></th>
                    <th scope="row"><%= info[:company] %></th>
                    <th scope="row"><%= info[:email] %></th>
                </tr>
        <% end %>
    </tbody>

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

( Hubspot::Contact.all({ property: 'email', 'firstname' }) ).each do 

а также

( Hubspot::Contact.all({ property: 'email'})({ property: 'firstname'}) ).each do 

Я подумал о том, чтобы списать все это и начать с новой драгоценности. Но единственный другой, который выглядит заслуживающим своего ожидания ( https://github.com/HubSpot/rHAPI), не будет установлен должным образом. Поэтому я пытаюсь заставить это первое решение работать.

Спасибо за любую помощь. Я учу себя и никогда не публиковал здесь раньше. Я очень нервничаю, чтобы публиковать здесь сообщения, поэтому любая обратная связь по этому вопросу или мой код в целом будут означать для меня мир.

2 ответа

Спасибо! Решение было:

{ property: ['email', 'firstname'] } 

Вы можете попробовать:

Hubspot::Contact.all.each do |contact|

Затем вы захватываете весь объект и можете получить куски, необходимые для построения таблицы, при условии, что нужные вам ключи находятся в объекте, возвращаемом из Hubspot.

Я не знаком с этим драгоценным камнем, но отбрасывание значений не похоже на обычную вещь. Если ключ недоступен в.all.each, он вряд ли будет доступен с использованием фильтров.

Я быстро взглянул на библиотеку драгоценного камня и не увидел ничего, что могло бы сказать мне, что оно отбросит данные.

Другие вопросы по тегам