Почему атрибут не сохраняется в Rails? - PullRequest
0 голосов
/ 21 июля 2009

Я добавил переменную "account" в приложение Rails, которое я запускаю, и протестировал его в среде разработки на сервере mongrel. Все работало нормально Я настроил свою среду на работу и использую наш сервер Apache, и вдруг ничего не работает. После многих отладок я обнаружил, что переменная account успешно устанавливается в моих методах как SET, но это не SAVING (то есть, когда она выходит из метода, который ее устанавливает, она равна nil). Я могу позвонить сохранить или сохранить! столько раз, сколько я хочу, и это все еще не устанавливается.

Атрибут доступен, и я не вижу ошибок в журналах ... Он просто не сохраняется.

Есть идеи, что происходит?

-Jenny

Ответы [ 2 ]

2 голосов
/ 21 июля 2009

Ах, я перешел на dev, но не на производство. Я не думал, что это могут быть миграции, потому что, если бы это было так, я решил, я бы не смог получить доступ к @ video.account или что-то еще, потому что я получил бы ошибку «метод не существует» (который что я получал до того, как перешел в dev).

0 голосов
/ 03 сентября 2009

Немного больше информации, чтобы помочь вам понять, почему это произошло:

Извлеките файл db/schema.rb - он содержит представление вашей базы данных в Ruby, обновляемое при каждой миграции. Модели в Rails основывают свои атрибуты на этом файле.

Таким образом, при миграции в режиме разработки файл схемы обновляется. Когда вы переходите в рабочий режим, этот файл сохраняется, и Rails не знает, что столбцы, которые вы пытаетесь назначить, не существуют. Таким образом, объект, который вы обновляете, принимает присвоение атрибута, отправляет запрос и движется дальше, не замечая, что атрибут действительно не сохранен.

Это мое понимание - надеюсь, это поможет вам в ваших поисках!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...