2013-07-20 6 views
0

rails 3.2.13ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux]CentOS 5.6에 사용하고 있습니다. 데이터를 시드하려고하면 다음 오류가 발생합니다.ActiveRecord :: RecordNotSaved - 레일 3 시드 데이터

** 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)>' 

record_status.rake

16: record_statuses.each do |rs| 
17:  unless RecordStatus.find_by_seed_name(rs[:name]) 
18:  puts "Creating RecordStatus: #{rs[:name]}" 
19:  RecordStatus.create!(:name  => rs[:name], 
20:        :seed_name => rs[:name], 
21:        :description => rs[:description]) 
22:  end 
23:  end 

EDIT-1 * RecordStatus.rb * 당신이 중복이 있어야처럼 나타납니다

class RecordStatus < ActiveRecord::Base 
acts_as_enumerated 

ACTIVE = 1 
DISABLED = 2 
DELETED = 3 

    validates_uniqueness_of :id , :name 
end 
+0

어떤 종류의 모델 유효성 검사가 RecordStatus 모델에 있습니까? – apotry

+0

@ peri08 내 질문을 업데이트했습니다. – Bathakarai

답변

0

레일 (3) 자연에 의해 열거에 대한 create/alter/destroy instances을 지원하지 않습니다 확실히 확인하려면 같은 것으로 create!에 전화를 변경합니다. 열거 형을 만들려면 Model.enumeration_model_updates_permitted = truerecord_status.rake 파일에 추가하면됩니다. REF : Enumerations_mixin

0

귀하의 종자 데이터에있는 이름.

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