Ruby on rails ActiveRecord::RecordNotSaved-Rails 3种子数据

Ruby on rails ActiveRecord::RecordNotSaved-Rails 3种子数据,ruby-on-rails,ruby,ruby-on-rails-3.2,ruby-1.9.2,Ruby On Rails,Ruby,Ruby On Rails 3.2,Ruby 1.9.2,我在CentOS 5.6中使用的是rails 3.2.13和ruby 1.9.2p320(2012-04-20修订版35421)[x86\u 64-linux]。当我尝试为数据播种时,我得到了以下错误 ** Execute Samp:seed:record_status Creating RecordStatus: Active rake aborted! ActiveRecord::RecordNotSaved /usr/local/rvm/gems/ruby-1.9.2-p320/gems/

我在
CentOS 5.6
中使用的是
rails 3.2.13
ruby 1.9.2p320(2012-04-20修订版35421)[x86\u 64-linux]
。当我尝试为数据播种时,我得到了以下错误

** Execute Samp:seed:record_status
Creating RecordStatus: Active
rake aborted!
ActiveRecord::RecordNotSaved
/usr/local/rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.13/lib/active_record/persistence.rb:105:in `save!'
/usr/local/rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.13/lib/active_record/validations.rb:56:in `save!'
/usr/local/rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.13/lib/active_record/attribute_methods/dirty.rb:33:in `save!'
/usr/local/rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.13/lib/active_record/transactions.rb:264:in `block in save!'
/opt/Samp/lib/tasks/seed/record_status.rake:19:in `block (4 levels) in <top (required)>'
/opt/Samp/lib/tasks/seed/record_status.rake:16:in `each'
/opt/Samp/lib/tasks/seed/record_status.rake:16:in `block (3 levels) in <top (required)>'
编辑-1 *RecordStatus.rb*

class RecordStatus < ActiveRecord::Base
acts_as_enumerated

 ACTIVE   = 1
 DISABLED = 2
 DELETED  = 3

  validates_uniqueness_of :id , :name
end
class-RecordStatus
看起来您的种子数据中必须有重复的名称。要确定答案,请将调用更改为
create类似于:

 rs = RecordStatus.new(...)
 unless rs.save
   raise "Couldn't save #{rs.inspect}: #{rs.errors.full_messages.to_sentence}"
 end

Rails 3不支持按性质枚举的
create/alter/destroy实例。如果我们想创建任何枚举,只需在
记录状态.rake
文件中添加
Model.enumeration\u Model\u updates\u allowed=true
。REF:

您对RecordStatus模型有什么样的模型验证???@peri08我更新了我的问题
 rs = RecordStatus.new(...)
 unless rs.save
   raise "Couldn't save #{rs.inspect}: #{rs.errors.full_messages.to_sentence}"
 end