2014-01-29 2 views
0

Таким образом, я намеренно не включал атрибут text в моей модели Post. Затем я сделал «rails g migration AddTextToPost text: string», чтобы добавить этот столбец в мои сообщения. В моих сообщениях/новых у меня есть text_are: текст. Я смог создать сообщение, но я не смог получить: текстовую информацию. В консоли rails @ post.text дал мне нуль. Я уже делал «rake db: migrate» и все. Стол есть, но он не получил никакой информации, которую я вложил ... Любое предложение и объяснения? СпасибоRails - Ошибка при вводе, но вывод «nil»

+0

'reload!' Ваша консоль .. – Nithin

ответ

0

Если ваша миграция rake db:migrate прошла успешно. Затем атрибуты должны быть доступны в модели Post. Либо запустите перезагрузите! в консоли рельсов или выйдите с помощью ctrl + c, а затем снова введите консоль рельсов. Вы должны быть в состоянии увидеть обновленную таблицу изменений

0

В вашей рельсах консоли:

reload! # to reload the environment of rails console and it reread the db connected to it 
@post.reload # to reload the values of @post(or whatever object name) from db table, basically invalidates the cache and loads the data from db again. 
@post.text # get the updated value. 
+0

получилось, что db: migrate не запускался. Это дает мне эту ошибку: ** Invoke db: migrate (first_time) ** Invoke environment (first_time) ** Выполнить среду ** Выполнить db: перенести ** Вызывать db: schema: dump (first_time) ** Вызвать среду ** Выполнить дб: схема: свалка. Любая идея, как это исправить? Я попытался выполнить откат и снова выполнить миграцию, но не работал. – user2393426

+0

Задайте отдельный вопрос с журналом ошибок, который у вас есть на консоли. И, ссылайтесь на ссылку вопроса. Я посмотрю, что я могу сделать, чтобы помочь. :) – Surya

0

Вы можете попробовать в консоли @ пост = Post.last , если его показ атрибут текста означает, что ваша миграция выполняется успешно В противном случае выполните rakedb: перенесите и перезагрузите консоль и перезапустите консоль рельсов (ctr + c) и рельсы s

Смежные вопросы