Обновление Contentful записи со ссылкой / полем ссылки

Содержательная документация довольно скудна. Я хочу обновить поле в записи, которая является ссылкой на другую запись ("Ссылка" - это то, что они называют в пользовательском интерфейсе CMS).

Кто-нибудь знает, в каком формате они хотят это при использовании Contentful Management API?

type  ||= @mgmt.content_types.find(
  ENV['CONTENTFUL_SPACE_ID'], 'comments'
)

entry = type.entries.create(
  title: params[:title],
  article: params[:article]
)

куда :article идентификатор записи в виде строки. Это возвращает:

undefined method `id' for "7L4IpEtsdffds8EsmoWMGIgy":String
Extracted source (around line #74):

#72         case field.type
#73         when ContentType::LINK then
*74           { sys: { type: field.type, linkType: field.link_type, id: attribute.id } } if attribute
#75         when ContentType::ARRAY then
#76           parse_fields_array(attribute)
#77         when ContentType::LOCATION then

Я также пытался заменить params[:article] с @client.entry(params[:article]) думая, что они могут хотеть весь объект, но он возвращает ту же ошибку, только он видит тот же аргумент, что и пустая строка.

Я также попробовал это по предложению @DavidLitvak:

link = Contentful::Management::Link.new({
  sys: {
    type: 'Link',
    linkType: 'Entry',
    id: params[:article]
  }
})

entry = type.entries.create(
  title: params[:title],
  article: link
)

И хотя это не приводит к ошибке, поле статьи отображается без записи, а поле заголовка заполнено.

Также обратите внимание, что я использую гем Ruby: contentful-management,

1 ответ

Решение

Что вам нужно отправить это Link для ссылочной статьи.

Вы можете сделать это следующим образом:

entry = type.entries.create(
  title: params[:title],
  article: Contentful::Management::Link.new({
    sys: {
      id: params[:article],
      type: 'Link',
      linkType: 'Entry'
    }
  })
)

Вы можете найти больше информации о том, как работают ссылки здесь: https://www.contentful.com/developers/docs/concepts/links/

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