J'utilise Rails 3.0.20 et Ruby 1.8.7 (2011-06-30 patchlevel 352)
Suggérez-moi le meilleur plugin pour générer des guides.
Il y a beaucoup d'options, je recommande de ne pas ajouter de dépendances supplémentaires et d'utiliser SecureRandom
qui est intégré:
SecureRandom.uuid #=> "1ca71cd6-08c4-4855-9381-2f41aeffe59c"
Voir d'autres formats possibles ici .
La première chose que je suggérerais est que s'il vous plaît mettez à jour votre Ruby et Rails version.
Un très bon moyen de générer guid est: SecureRandom , qui est un module Ruby. Avec une utilisation facile.
require 'securerandom'
guid = SecureRandom.hex(10) #or whatever value you want instead of 10
Je suggérerais d'utiliser PostgreSQL et d'utiliser la colonne uuid intégrée, elle génère automatiquement l'UUID en fonction du type que vous créez la colonne.
Exemple dans Rails 3 migration
execute <<-SQL CREATE TABLE some_items (id uuid PRIMARY KEY DEFAULT uuid_generate_v1()); SQL
Cela pourrait être une meilleure façon de faire ceci dans Rails 4.
S'il vous plaît voir en détail, comment utiliser securerandom Ruby bibliothèque standard pour utiliser UUID avec exemple dans Rails 3.X et 4.X
créez le fichier usesguid.rb dans votre lib/usesguid.rb et collez le code ci-dessous dans celui-ci -
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
ajouter la ligne suivante dans votre config/application.rb pour charger le fichier -
require File.dirname(__FILE__) + '/../lib/usesguid'
Créez un script de migration pour la fonction UUID comme indiqué ci-dessous pour -
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
Voici un exemple de migration de contact, comment l'utiliser -
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 comment utiliser dans votre modèle
class Contact < ActiveRecord::Base
usesguid
end
Cela vous aidera à configurer l’UUID pour votre application Rails.
Cela peut être utile pour Rails 3.0, 3.1, 3.2 et 4.0 également.
S'il vous plaît faites le moi savoir Si vous avez un problème lors de l'utilisation, si simple!
Autres options pour Rails4 here