RailsTutorial 3.2 Ch 11 - синтаксическая ошибка PostgreSQL прерывает ленту статуса
-
29-10-2019 - |
Вопрос
Я нахожусь в разделе 11.3.1 руководства по Rails, и все тесты до этого проходили успешно. После этого домашняя страница (с фидом микросообщений) прерывается с этой ошибкой:
родовое словоИ некоторые тесты терпят неудачу из-за аналогичной проблемы. Вот первый:
родовое словоТеперь я использую PostgreSQL вместо SQLite3 по умолчанию, поэтому может быть конфликт синтаксиса, но я не уверен. Я не очень хорошо знаком с Postgres (просто использую его, чтобы сделать развертывание Heroku более чистым).
Похоже, что ошибка домашней страницы возникает из-за того, что идентификаторы передаются в запрос с кавычками - я вошел в psql, чтобы проверить несколько запросов, и это успешно:
родовое словопока это не удается:
родовое словоИ ошибка спецификации возникает из-за того, что передается пустой массив, эквивалентный этому, что также не работает:
родовое словоМожет ли кто-нибудь, знакомый с синтаксисом PostgreSQL, сказать мне, как переписать определение метода, чтобы исправить эту проблему?
Текущий метод в micropost.rb
выглядит так:
И вызов из `users.rb 'выглядит так:
родовое словоРешение
Чёрт возьми, я сам в этом разобрался.Просто нужно было удалить соединение в определении метода:
родовое слово user.followed_user_ids.join(', ')
производит следующее: "1, 2, 3"
пока
user.followed_user_ids
производит следующее: 1, 2, 3
чего я и хотел.