내가 (루비 온 레일즈의 튜토리얼에서) 내 루비 레일에 응용 프로그램에 트위터 인증을 통합하기 위해 노력했다. 레이크 중단되었습니다 : 잘못된 인수 번호 (1 0)
은 결과적으로 나는 테이블 (사용자 테이블) 하락하고 다시했다. 이제 데이터베이스를 채우려 나는namespace :db do
desc "Fill database with sample data"
task populate: :environment do
User.create!(name: "Example User",
email: "[email protected]",
password: "foobar",
password_confirmation: "foobar")
99.times do |n|
name = Faker::Name.name
email = "example-#{n+1}@railstutorial.org"
password = "password"
User.create!(name: name,
email: email,
password: password,
password_confirmation: password)
end
end
end
다음 명령이 작동 테이블을 채우기 위해이 코드를 가지고 :
$bundle exec rake:db migrate
$bundle exec rake:db reset
는 $ 번들 간부 레이크 그러나 : DB를 채우기가 작동하지 않습니다. 이 문제에 어떤 도움에 감사드립니다
$ bundle exec rake db:populate --trace
** Invoke db:populate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:populate
rake aborted!
wrong number of arguments (0 for 1)
c:/Ruby193/lib/ruby/gems/1.9.1/gems/devise-2.0.4/lib/devise/models/database_auth
enticatable.rb:105:in `password_digest'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activemodel-3.2.0/lib/active_model/errors.rb
:254:in `block in add_on_blank'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activemodel-3.2.0/lib/active_model/errors.rb
:253:in `each'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activemodel-3.2.0/lib/active_model/errors.rb
:253:in `add_on_blank'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activemodel-3.2.0/lib/active_model/validatio
ns/presence.rb:9:in `validate'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.0/lib/active_support/callb
acks.rb:310:in `_callback_before_39'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.0/lib/active_support/callb
acks.rb:484:in `_run__584816360__validate__204154762__callbacks'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.0/lib/active_support/callb
acks.rb:405:in `__run_callback'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.0/lib/active_support/callb
acks.rb:385:in `_run_validate_callbacks'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.0/lib/active_support/callb
acks.rb:81:in `run_callbacks'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activemodel-3.2.0/lib/active_model/validatio
ns.rb:212:in `run_validations!'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activemodel-3.2.0/lib/active_model/validatio
ns/callbacks.rb:53:in `block in run_validations!'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.0/lib/active_support/callb
acks.rb:425:in `_run__584816360__validation__204154762__callbacks'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.0/lib/active_support/callb
acks.rb:405:in `__run_callback'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.0/lib/active_support/callb
acks.rb:385:in `_run_validation_callbacks'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.0/lib/active_support/callb
acks.rb:81:in `run_callbacks'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activemodel-3.2.0/lib/active_model/validatio
ns/callbacks.rb:53:in `run_validations!'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activemodel-3.2.0/lib/active_model/validatio
ns.rb:179:in `valid?'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.0/lib/active_record/validat
ions.rb:69:in `valid?'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.0/lib/active_record/validat
ions.rb:77:in `perform_validations'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.0/lib/active_record/validat
ions.rb:56:in `save!'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.0/lib/active_record/attribu
te_methods/dirty.rb:33:in `save!'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.0/lib/active_record/transac
tions.rb:246:in `block in save!'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.0/lib/active_record/transac
tions.rb:295:in `block in with_transaction_returning_status'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.0/lib/active_record/connect
ion_adapters/abstract/database_statements.rb:190:in `transaction'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.0/lib/active_record/transac
tions.rb:208:in `transaction'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.0/lib/active_record/transac
tions.rb:293:in `with_transaction_returning_status'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.0/lib/active_record/transac
tions.rb:246:in `save!'
c:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.0/lib/active_record/validat
ions.rb:41:in `create!'
c:/tuffy/shopgodt/lib/tasks/sample_data.rake:4:in `block (2 levels) in <top (req
uired)>'
c:/Ruby193/lib/ruby/1.9.1/rake/task.rb:205:in `call'
c:/Ruby193/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
c:/Ruby193/lib/ruby/1.9.1/rake/task.rb:200:in `each'
c:/Ruby193/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
c:/Ruby193/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
c:/Ruby193/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
c:/Ruby193/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
c:/Ruby193/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
c:/Ruby193/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
c:/Ruby193/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_lev
el'
c:/Ruby193/lib/ruby/1.9.1/rake/application.rb:94:in `each'
c:/Ruby193/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
c:/Ruby193/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handlin
g'
c:/Ruby193/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
c:/Ruby193/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
c:/Ruby193/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handlin
g'
c:/Ruby193/lib/ruby/1.9.1/rake/application.rb:63:in `run'
c:/Ruby193/bin/rake:32:in `<main>'
Tasks: TOP => db:populate
:
내가 점점 오전 오류가 있습니다. 다시 한 번 감사드립니다!
============================================== ==============
업데이트 05/02/2012 : 제 3 자 로그인 (페이스 북, 트위터)을 추가하고 싶었 기 때문에 Devise gem을 추가했지만 어느 것이 확실하지 않습니다 나는 모든 것이 잘 실행을 주석 처리하면 명령 나는 그것이 내 응용 프로그램/모델에 추가 된이 두 줄의 결과 실행/User.rb는
:token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
파일. 이 두 줄이 무엇을하고 있는지 이해하고 싶습니다. 그것은 User
클래스 자체에 뭔가가 될 수 있었던 것처럼
안녕하세요 @ TCopple 응답 주셔서 감사합니다! 내 사용자 테이블에 ID, 전자 메일, created_at, updated_at, password_digest, remember_token, admin 필드가 있습니다. 사용자 모델에서 코드 : 이'는 {respond_to한다 (이름)} 는 {respond_to한다 (: 이메일을)} 를가 {respond_to한다 (: password_digest)} 를가 {respond_to한다 (: 암호)} 그것을 { respond_to한다 (:도 인증)} 를 그 {respond_to한다 (: password_confirmation)} 그것이 {respond_to한다 (: remember_token)} 을 {respond_to한다 (: 관리자)} 을 {respond_to한다 (: 인증 용)} 을 { be_valid} it {should_not be_admin} ' – Rubygirl
두 가지가 있습니다. 1) 정보를 추가 할 때 원래 게시물에 코드를 넣어서 모든 사람이 그 정보를 알 수 있도록하십시오. 2) 실제 모델 자체가 아닌'User' 모델의 테스트 케이스처럼 보입니다. 'app/models/user.rb'의 내용 게시 – TCopple
안녕하세요, TCopple 저는 잘못된 코드를 붙여 넣은 것을 깨달았습니다. 나는 Devise를 추가했고 어떤 명령 행을 실행했는지 모르지만 내 사용자 모델에는 두 개의 추가 행이 있습니다. 나는 그들을 원래 게시물에 붙이고있다. – Rubygirl