Я добавил два поля к моему разработчику. Я сделал это, добавив их в файл переноса следующим образом:
t.datetime :access_bought_at, :default => DateTime.civil(0, 0, 0, 0, 0, 0, 0)
t.string :access_type, :default => "none"
а затем сделать эти атрибуты доступными в пользовательской модели:
attr_accessible :email, :password, :password_confirmation, :remember_me, :access_type, :access_bought_at
Затем была выполнена миграция (rake db: migrate).
Но у меня возникают проблемы с доступом к этим полям и их модификацией. Я довольно новичок в рельсах, и я уверен, что ответ довольно прост, но я не могу найти (или понять, что я нахожу) о том, как получить доступ и изменить это поле. Это то, что я пытаюсь сделать. В определенном контроллере я хочу изменить эти поля, и я делаю:
current_user::access_type = "forever"
current_user::access_bought_at = Date.current()
но тогда, если я сделаю
puts current_user::email
puts current_user::access_type
puts current_user::access_bought_at
распечатывается только электронная почта. Я предполагаю, что мне не хватает ни одного шага, и я не обновляю базу данных, иначе я просто ошибаюсь. Я читаю здесь ( обновить таблицу, которая не разрабатывает модель при регистрации с помощью devize? ), что я должен просто указать def в модели. Дефект как? Имеет смысл, что, поскольку я меняю модель, я должен дать инструкции о том, как ее модифицировать, поэтому добавление метода для этого кажется правильным, но что должен делать этот метод?