Как создать нового пользователя в Devise во время миграции - PullRequest
1 голос
/ 02 марта 2012

У меня это работало в старом проекте, но, возможно, это изменилось в одной из последних версий. В настоящее время я использую Devise 2.0.4. Я пытаюсь создать нового пользователя во время миграции, используя

 User.create :email => '[password]',
             :password => '[password]',
             :password_confirmation => '[password]'

но когда я делаю это, он прерывается со следующей ошибкой

 rake aborted!
 An error has occurred, this and all later migrations canceled:

 ActionView::Template::Error

 Tasks: TOP => db:migrate:reset => db:migrate
 (See full trace by running task with --trace)

Любая помощь по этому вопросу будет принята с благодарностью!

В качестве альтернативы, я мог бы создать пользователя с помощью оболочки rails, но для согласованности я бы хотел, чтобы каждый раз по умолчанию запускался один пользователь.

1 Ответ

4 голосов
/ 02 марта 2012

Основываясь на комментарии Прасвина , я обнаружил, что лучший способ сделать это - перейти к db/seeds.rb и заполнить начальный элемент, такой как

 User.create(:email => '[email]', :password => '[password]', :password_confirmation => '[password]')

. Это само по себе приводит кдругое сообщение об ошибке

 rake aborted!
 Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

, которое я в итоге нашел через другое сообщение было связано с тем, что в моем файле config/environments/development.rb я еще не установил

 config.action_mailer.default_url_options = { :host => 'localhost:3000'}

Это означает, что, когда Devise пытался отправить электронное письмо с подтверждением, он потерпел неудачу, потому что не знал, по какому адресу сказать им вернуться.Это то, что вызвало ActionView::Template::Error.Как только все это будет сделано, оно будет работать как положено.

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