Мой первый шаг - открыть консоль rails (в командной строке введите «rails console»), а затем попробуйте следующее:
>> x = Post.find(5)
Если вы найдете его, проверьте user_id в этой записи. Это действительно существует? Если это так, это хорошо знать.
Далее я бы взял SQL-код из вашего вывода выше и запустил его вручную в любой используемой вами базе данных. Если вы используете SQLite3, вы можете сделать:
>> sqlite3 db/development.sqlite3
Если он существует, то справедливо почесать голову. Я подозреваю, что вы найдете, что это не там.
Является ли ссылка для ответа на сообщение, созданная вручную, на ваш взгляд? Вы уверены, что он построен правильно - два идентификатора интереса - именно то, что вы и предполагали?
Если все правильно, то я бы просто использовал отладчик ruby в вашем контроллере и начал бы перебирать код. Если вы не знакомы с отладчиком ruby, вы можете получить гем, как описано в вашем Gemfile, а затем, когда он окажется в вашем гемсете, вы можете добавить следующую строку кода, где вы хотите установить точку останова своего кода:
require 'ruby-debug'; debugger
Тогда вы можете исследовать по мере необходимости.