ActsAsDigestedOn <img src=“https://secure.travis-ci.org/milk1000cc/acts_as_digested_on.png?branch=master” alt=“Build Status” />¶ ↑
acts_as_digested_on is a gem for Rails 3 and Rails 4.
This sets the digested value before validation and validates uniqueness of the digested value.
If you use this gem for Rails 2, see rails-2 branch.
sudo gem install acts_as_digested_on
# db/migrate/20090706000000_create_articles.rb class CreateArticles < ActiveRecord::Migration def self.up create_table :articles do |t| t.text :url # any type is ok t.string :digest # this is sha-1 hex digest field of url value ... end add_index :articles, :digest, :unique => true # you can add index on digest field end def self.down drop_table :articles end end # app/models/article.rb class Article < ActiveRecord::Base acts_as_digested_on :url # please add this ... end # this means class Article < ActiveRecord::Base validates_uniqueness_of :digest before_validation :set_digest def generate_digest Digest::SHA1.hexdigest "--#{ url.to_s }--" end private def set_digest self.digest = generate_digest end ... end
acts_as_digested_on :url, :unique => false acts_as_digested_on :url, :digest_column => :url_digest acts_as_digested_on [:url, :salt] acts_as_digested_on :url, :scope => :site_id Article.new(:url => 'http://example.com').generate_digest
Copyright © 2009-2013 milk1000cc, released under the MIT license
milk1000cc <info@milk1000.cc>