RailsTutorial 3.2 Ch 11 - синтаксическая ошибка PostgreSQL прерывает ленту статуса

StackOverflow https://stackoverflow.com/questions/9397954

Вопрос

Я нахожусь в разделе 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

чего я и хотел.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top