Вы уверены, что у вас нет других различий между этими двумя фрагментами кода?
В своем комментарии вы говорите, что у вас есть @myworlds[@id+1]
, в исходном вопросе вы говорите @myworlds[id+1]
(локальная переменная против экземплярапеременная).Вы можете показать точный код?
Оба сценария в порядке.Вы можете создавать переменные в одном <% %>
блоке и использовать их в другом (конечно, если они находятся в одном файле .erb).
В сообщении об ошибке говорится, что в вашем массиве нет элементас индексом @id+1
или id+1
.Вы должны отладить значение выражения, используемого для индекса.Я предполагаю, что где-то есть небольшая ошибка, например, опечатка.
Каков вывод вашего оператора debug(@myworlds[@id+1])
, когда @myworlds[@id+1].topic
вызывает ошибку?
Также попробуйте отладить значениеиз id
:
<code><pre>The id = <%= debug(id) %> (<%= id.inspect %>)
(В зависимости от вашей версии Rails вы можете использовать h( id.inspect )
)