Devise :: Невозможно создать пользователя через грабли - PullRequest
4 голосов
/ 07 октября 2011

Модель пользователя имеет функцию

def self.createadmin(
User.create(:email => "abc@gmail.com", :password => "123456e", :password_confirmation => "123456e", :terms_of_service => '1')
end

В граблях db: seed я должен вызвать User.createadmin

Однако, это не удается

ActionView::Template::Error: ActionView::Template::Error
    from /Users/bever/Projects/tr/app/views/devise/mailer/confirmation_instructions.html.erb:3:in `_app_views_devise_mailer_confirmation_instructions_html_erb___1974818942364630283_2154906860'

ТогдаЯ изменил код в createadmin

begin
User.create(:email => "abc@gmail.com", :password => "123456e", :password_confirmation => "123456e", :terms_of_service => '1')
rescue => e
User.create(:email => "abc@gmail.com", :password => "123456e", :password_confirmation => "123456e", :terms_of_service => '1')
end    

Это работает!Любая подсказка, почему это происходит?

1 Ответ

2 голосов
/ 10 октября 2012

Вы пробовали заполнение из файла db / seed.rb вместо модели?Когда вы пытаетесь сделать это на модели, devise, вероятно, пытается отправить письмо с подтверждением.

Вы должны создать своего пользователя-администратора в файле seed.rb следующим образом:

User.create(:email => "abc@gmail.com", :password => "123456e", :password_confirmation => "123456e", :terms_of_service => '1')

Помните, что если вы используете подтверждающий модуль devise, вы должны добавить это поле в запрос.

:confirmed_at => Time.now

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

PD: Возможно, если вы отправите больше информации об ошибке, показаннойи, возможно, линия в представлении, я могу помочь вам больше.

Привет

...