0
모델에 일련 화 된 필드가 있는데이 필드의 고유성을 검사하려고 시도하면 작동하지 않습니다. (스틸이 응용 프로그램에 레일 2.3)Rails 2.3. serialization 된 필드의 validates_uniqueness_of
응용 프로그램/모델/foo.rb
class foo < ActiveRecord::Base
serialize :rules
validates_uniqueness_of :rules
end
내가 대신 해시 필드의 내용을 저장하고 콘텐츠 해시의 고유성을 확인하려고했습니다. 그런 다음 콜백 순서의 또 다른 문제로 달려갔습니다.
require 'digest/md5'
class foo < ActiveRecord::Base
before_save :update_content_hash
validates_uniqueness_of :content_hash
def update_content_hash
self.content_hash = OpenSSL::Digest::SHA1.hexdigest(self.rules.flatten)
end
end
그러나, 액티브 레코드 콜백 순서에보고 한 기본 값이 전무하기 때문에 항상 유효합니다 그래서 before_save는 확인 후 을 실행하고 그 후는 새로운 콘텐츠 해시에 업데이트됩니다.
http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
은 어쩌면 내가, 바로이 어떤 해결책을 생각하고 있지 않다?미리 감사드립니다.