0
레일즈 3의 UUIDTools 보석과 함께 작업 중이며 몇 가지 문제가 있습니다. 표시uuidtools, rspec, Rails 3
require 'spec_helper'
describe Item do
it 'should assign an id' do
item = Item.create
puts "item id: #{item.id}"
end
end
이 사양을 실행 :
item id: 5
.
Finished in 2.21 seconds
1 example, 0 failures
내 GUID 어디는 다른 이야기를 내 사양에
> item = Item.create
=> #<Item uuid: "e9d00043-9200-4497-a55c-509c5de3dd88", created_at: "2012-01-09 01:56:49", updated_at: "2012-01-09 01:56:49">
> item.id
=> "e9d00043-9200-4497-a55c-509c5de3dd88"
그러나 다음을 : 실제로 잘 작동하는 것 같다? id가 할당 된 패턴이 전혀없는 것 같아요. 저는 이것을 여러 번 실행하여 수천 개의 0에서 위로 이동합니다. 여기
내 마이그레이션입니다 :내 모델 :
require 'uuid_helper'
class Item < ActiveRecord::Base
include UUIDHelper
end
그리고 내 uuid_helper :
module UUIDHelper
def self.included(base)
base.class_eval do
set_primary_key :uuid
attr_readonly :uuid
before_create :set_uuid
private
def set_uuid
self.uuid = UUIDTools::UUID.random_create.to_s
end
end
end
end
이 set_uuid
에 일부 디버거 논리를 퍼팅 나는 뭐하는거야 것을 발견했습니다 어떤 시점에서 uuid에 to_i
이 있습니다. 어떤 제안?
업데이트 이것은 Rails 테스트 환경의 버그 인 것 같습니다. 내가 RAILS_ENV=test rails console
을 실행할 때 스펙에서와 동일한 동작을합니다. - guids가 잘립니다.
흠, 좀 더 살펴보면 데이터베이스 자체가 다른 것을 발견했습니다. 나는 테이블을 떨어 뜨리고 마이그레이션을 다시 시도하고 모든 것이 잘된 것처럼 보입니다. 내 마이그레이션을 로컬로 수정하는 이상한 상태로 테스트 데이터베이스를 남겨 둘 수 있습니다. – lobati
그리고 더 이상한. 데이터베이스를 마이그레이션하고 생성하는 일부 조합은 schema.rb를 일관성없는 상태로 유지하는 것처럼 보입니다. 나는 모든 테이블을 삭제하고 schema.rb를 제거하고 처음부터 시작하려고 시도했지만 여전히 작업으로 되돌릴 수는 없습니다. – lobati
좋아, 글쎄, 레일에 버그가있는 것 같아. 나는 Rails 3.1.1을 사용하기 시작했고 Rails 3.1.3으로 업그레이드하기 전에 사용하고있었습니다. 그게 내 위의 발언에서 일을 끝낼 때입니다. 3.1.1로 되돌아 가면 작동하지 않습니다. – lobati