2010-12-13 4 views
5

Я немного новичок в Rails и чувствую, что здесь не хватает трюка. Я пытаюсь добавить поле phone_number к моей модели, созданной с помощью Devise, но у меня возникла проблема с ее сохранением. Я сделал rails generate devise:views, обновил файл edit.html.erb, чтобы добавить в поле: phone_number, и создал переход, чтобы добавить поле model_number в модель. Это не сохранение модели, потому что (как я ее понимаю) я не могу обновить контроллер, чтобы включить новые поля.Добавить поля в пользовательскую модель в Devise

Должен ли я создать app/controllers/users/registration_controller.rb, определенный с помощью class Users::RegistrationsController < Devise::RegistrationsController, а затем обезьяна заплатить метод обновления? Или есть более простой/элегантный/более простой способ?

Я понимаю, что на сайте есть еще несколько вопросов, связанных с этим, но никто не дает никаких полезных ответов, а другой просто детализирует то, что я упоминаю здесь. Есть ли что-нибудь еще?

Спасибо.

ответ

11

После того как вы добавите поле в свою базу данных с помощью миграции, вам также необходимо добавить его в список доступных атрибутов в модели пользователя. Ваш список attr_accessible должен выглядеть примерно так: в зависимости от того, какие модули вы используете.

attr_accessible :email, :password, :password_confirmation, :phone_number 
+0

Вот и все! Я знал, что у меня что-то не хватает ... –

+0

В Rails 4 не забудьте использовать сильные параметры. например 'params.require (: user) .permit (: email,: password,: password_confirmation,: phone_number)' – Nateowami