2016-01-31 22 views
1

我是OneMonth学习条形支付的初学者。现在,我正在学习如何创建产品表并为数据库创建种子。一切都一帆风顺,到目前为止,直到我跑耙分贝之后遇到一个问题:种子Rake db:种子耙中止! ActiveRecord :: RecordInvalid:验证失败:电子邮件已被采用

大卫 - MBP-2:one_month_stripe_payments DKP $耙分贝:种子 耙中止! ActiveRecord :: RecordInvalid:验证失败:电子邮件已被采用 /Users/DKP/.rvm/gems/[email protected]/gems/activerecord-4.2.5/lib/active_record/validations.rb: 79:在raise_record_invalid' /Users/DKP/.rvm/gems/[email protected]/gems/activerecord-4.2.5/lib/active_record/validations.rb:43:in保存!' /Users/DKP/.rvm/gems/[email protected]/gems/activerecord-4.2.5/lib/active_record/attribute_methods/dirty.rb:29:in save!' /Users/DKP/.rvm/gems/[email protected]/gems/activerecord-4.2.5/lib/active_record/transactions.rb:291:in block in save!' /Users/DKP/.rvm/gems/[email protected]/gems/activerecord-4.2.5/lib/active_record/transactions.rb:351:in block in with_transaction_returning_status' /Users/DKP/.rvm/gems/[email protected]/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in交易' /Users/DKP /中的区块。 rvm/gems/[email protected]/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:184:在within_new_transaction' /Users/DKP/.rvm/gems/[email protected]/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in交易' /Users/DKP/.rvm/gems/ruby [email protected]/gems/activerecord-4.2.5/lib/active_record/transactions.rb:220:在transaction' /Users/DKP/.rvm/gems/[email protected]/gems/activerecord-4.2.5/lib/active_record/transactions.rb:348:in with_transaction_returning_status' /Users/DKP/.rvm/gems/[email protected]/gems/ activerecord-4.2.5/lib/active_record/transactions.rb:291:在save!' /Users/DKP/.rvm/gems/[email protected]/gems/activerecord-4.2.5/lib/active_record/persistence.rb:51:in创建!' /Users/DKP/Desktop/one_month/one_month_stripe_payments/db/seeds.rb:8:in <top (required)>' /Users/DKP/.rvm/gems/[email protected]/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in load' /Users/DKP/.rvm/gems/[email protected]/gems/activesupport-4.2.5 /lib/active_support/dependencies.rb:268:in block in load' /Users/DKP/.rvm/gems/[email protected]/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:240:in load_dependency' /Users/DKP/.rvm/gems/[email protected]/gems/activesupport-4.2.5/lib/active_support/dependencies.rb: 268:load' /Users/DKP/.rvm/gems/[email protected]/gems/railties-4.2.5/lib/rails/engine.rb:547:in load_seed' /Users/DKP/.rvm/gems/[email protected]/gems/activerecord-4.2.5/lib/active_record/tasks/database_tasks.rb:250:in load_seed' /Users/DKP/.rvm/gems/[email protected]/gems/activerecord-4.2.5/lib/active_record/railties/databases.rake:183:in block(2)水平)' /Users/DKP/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in eval' /Users/DKP/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in' 任务:TOP => db:seed (请参阅完整跟踪,通过使用 - 跟踪)

我试过rake db:reset,然后rake:db migrate,然后再次rake db:seed。但我仍然有同样的错误。

任何人都可以帮助我解决这个问题吗?我感觉卡住了,我不知道该怎么做。

非常感谢!

回答

1

当你做rake db:reset,什么轨道是rake db:drop - >rake db:create - >rake db:migrate - >rake db:seed

你不需要再次rake db:seed

你可以通过做rails c检查你的控制台,看看你的种子数据是否已经在里面。 Product.all

+0

运行rake db之后,我收到了这个错误:reset。耙分贝:种子耙中止!ActiveRecord :: UnknownAttributeError:产品的未知属性“长度”。我仍然对编码不熟悉,所以我不知道如何自己阅读。有关如何解决这个问题的任何想法?再次感谢! – codingnoob

+1

@codingnoob因为您的产品表中没有列,所以您会收到'UnknownAttributeError'。你有没有生成长度列?如果没有,你可以做'rails生成迁移AddLengthToProducts length:integer'。然后做一个'rake db:migrate'。 – Jefferson

2

'电子邮件已被采纳'意味着你有一个已经存在的电子邮件记录。

执行Rails控制台并检查记录是否存在。 如果没有,请执行rake db:drop - > rake db:create - > rake db:migrate - > rake db:seed。这将解决您的问题。

+0

我找不到电子邮件控制台中的电子邮件记录,所以我按照您的建议来使用rake db:drop ... rake db:seed。但是,当我做耙db:种子,我现在得到这个错误:耙db:种子 耙子中止! ActiveRecord :: UnknownAttributeError:产品的未知属性“长度”。我仍然对编码不熟悉,所以我不知道如何阅读。有关如何解决这个问题的任何想法?再次感谢! – codingnoob

相关问题