最近、私のプロジェクトの1つでsecurerandomをどのように使用したかを詳しく見てください。間違いなく役に立ちます!
lib / usesguid.rbにusesguid.rbファイルを作成し、その中に以下のコードを貼り付けます-
require 'securerandom'
module ActiveRecord
module Usesguid #:nodoc:
def self.append_features(base)
super
base.extend(ClassMethods)
end
module ClassMethods
def usesguid(options = {})
class_eval do
self.primary_key = options[:column] if options[:column]
after_initialize :create_id
def create_id
self.id ||= SecureRandom.uuid
end
end
end
end
end
end
ActiveRecord::Base.class_eval do
include ActiveRecord::Usesguid
end
config / application.rbに次の行を追加して、ファイルをロードします-
require File.dirname(__FILE__) + '/../lib/usesguid'
以下に説明するように、UUID関数の移行スクリプトを作成します-
class CreateUuidFunction < ActiveRecord::Migration
def self.up
execute "create or replace function uuid() returns uuid as 'uuid-ossp', 'uuid_generate_v1' volatile strict language C;"
end
def self.down
execute "drop function uuid();"
end
end
連絡先の移行の例とその使用方法を次に示します-
class CreateContacts < ActiveRecord::Migration
def change
create_table :contacts, id: false do |t|
t.column :id, :uuid, null:false
t.string :name
t.string :mobile_no
t.timestamps
end
end
end
モデルに使用する最終的な方法
class Contact < ActiveRecord::Base
usesguid
end
これは、RailsアプリケーションのUUIDを構成するのに役立ちます。
これは、Rails 3.0、3.1、3.2、および4.0でも役立ちます。
使用中に問題が発生した場合は、簡単にお知らせください。