2012-03-02 3 views
1

이전 프로젝트에서이 작업을 수행했지만 더 최근 버전에서이 작업이 변경되었을 수 있습니다. 현재 Devise 2.0.4를 사용하고 있습니다. 나는이전 중에 Devise에 새 사용자를 생성하는 방법

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) 

다음과 같은 오류로 중단!

또는 레일 쉘을 사용하여 사용자를 만들 수도 있지만 일관성을 위해 항상 기본 사용자 한 명을두고 싶습니다.

+2

왜이 용도로 씨앗을 사용하지 않습니까? – prasvin

+0

좋은 질문입니다. 주로 그 개념이 있다는 것을 기억했기 때문에 그 이름을 기억할 수 없었고, 내가 아는 것을 검색 할 때 씨앗도 나오지 않았습니다. –

+0

이 문제가 해결되면 답변을 추가하고 질문을 닫아야 할 수도 있습니다. 그러나 나는 대답을 직접 추가해도 괜찮을 것입니다. P : – prasvin

답변

4

prasvin's comment을 바탕으로, 나는이 작업을 수행 할 수있는 더 좋은 방법이 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 
로 이어질 시드 요소를 채우는 것을 발견

내가 결국 a different post을 통해 발견했다는 사실은 내 config/environments/development.rb 파일에 아직 설정하지 않았다는 사실과 관련이있다

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

즉, Devise가 확인 이메일을 보내려고 할 때 어떤 주소로 돌아 왔는지 알 수 없기 때문에 실패했습니다. 이것이 ActionView::Template::Error의 원인입니다. 모든 작업이 완료되면 예상대로 완벽하게 작동합니다.

관련 문제