ruby-on-rails ruby ruby-on-rails-3 guid uuid

ruby on rails - Necesito generar uuid para mi aplicación de rieles. ¿Cuáles son las opciones(gemas) que tengo?



ruby-on-rails ruby-on-rails-3 (4)

Lo primero que sugeriría es que actualice su versión de ruby ​​y rieles.

Una forma muy buena de generar guid es SecureRandom , que es un módulo ruby. Con un uso fácil.

require ''securerandom'' guid = SecureRandom.hex(10) #or whatever value you want instead of 10

Esta pregunta ya tiene una respuesta aquí:

Uso Rails 3.0.20 y ruby ​​1.8.7 (2011-06-30 patchlevel 352)

Por favor sugiérame el mejor complemento para generar guid.


Por favor, vea en detalle, cómo usar la biblioteca estándar de Ruby SecureAndom para usar el UUID con el ejemplo en los raíles 3.X y 4.X

crea el archivo usesguid.rb en tu lib / usesguid.rb y pega el código debajo en ese -

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

agregue la siguiente línea en su config / application.rb para cargar el archivo -

require File.dirname(__FILE__) + ''/../lib/usesguid''

Cree la secuencia de comandos de migración para la función UUID como se menciona a continuación para:

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

Aquí hay un ejemplo de migración de contactos, cómo podemos usarlo,

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

Final de cómo usar en tu modelo

class Contact < ActiveRecord::Base usesguid end

Esto lo ayudará a configurar el UUID para su aplicación de rieles.

Esto también puede ser útil para Rails 3.0, 3.1, 3.2 y 4.0.

Avísame si tienes algún problema mientras lo usas, ¡así de simple!

Otras opciones para Rails4 here


Yo sugeriría usar PostgreSQL y usar la columna uuid incorporada, autogenera el UUID basado en el tipo de creación de la columna.

Ejemplo en la migración de Rails 3

execute <<-SQL CREATE TABLE some_items (id uuid PRIMARY KEY DEFAULT uuid_generate_v1()); SQL

Podría ser una mejor manera de hacer esto en Rails 4.


Hay muchas opciones, recomiendo no agregar dependencias adicionales y usar SecureRandom que está incorporado:

SecureRandom.uuid #=> "1ca71cd6-08c4-4855-9381-2f41aeffe59c"

Vea otros formatos posibles here .