私はRuby on Railsアプリケーション(Ruby on Railsチュートリアルから)にtwitter認証を統合しようとしていました。Rake Aborted:引数が間違っている(0の場合は1)
その結果、私はテーブル(ユーザテーブル)を落として、それを再作成しなければなりませんでした。次のコマンドは動作し
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
しかし$バンドルのexec熊手:デシベルの移入は動作しません。この問題に関するすべてのヘルプは高く評価され
$ 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:私はサードパーティのログイン情報(Facebook、twitter)を追加したいので、私はDeviseの宝石を追加しましたが、私はすべてをそれらをコメントアウトしたら、私は私のアプリ/モデル/ User.rbファイルに追加されたこれらの2行
:token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
をもたらしたことを走ったコマンドが細かい走りました。私はこれら二つの行が何をしているのか理解したいと思いますか?
こんにちは@TCoppleが応答してくれてありがとう! My Usersテーブルには、ID、電子メール、created_at、updated_at、password_digest、remember_token、adminの各フィールドがあります。ユーザーモデルで コード: 'それは{respond_to必要があります(:名)} それは{respond_to必要があります(:Eメール)} それは{respond_to必要があります(:password_digest)} それは{respond_to必要があります(:パスワード)} それ{ respond_toべきである(:認証)} それは{respond_toべきである(:password_confirmation)(:remember_token)} それ{respond_toべきである(:管理者)} それは{respond_toべきである(:認証)を} それを{} それは{respond_toべきbe_valid} it {should_not be_admin} ' – Rubygirl
2つのものがあります。 1)情報を追加する際に、元の投稿にコードを入れて、みんながそこにいることを知ってください。 2)実際のモデル自体ではなく、 'User'モデルのテストケースのように見えます。 'app/models/user.rb'の内容を投稿してください – TCopple
こんにちはTCopple私は間違ったコードを貼り付けたことをご存知でした!私はDeviseを追加しましたが、どのコマンドラインを実行したのかわかりませんが、Userモデルには2行の追加行があります。元の投稿に貼り付けています。 – Rubygirl