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