Desidero utilizzare gli UUID in un'app che sto creando e sto incontrando un po 'di problemi. A causa degli UUID (v4) che non sono ordinabili perché sono generati casualmente, sto provando a sovrascrivere ActiveRecord :: Base # prima, ma Rails non ne è molto contento. Mi urla dire ArgumentError: You tried to define a scope named "first" on the model "Item", but Active Record already defined a class method with the same name.
per utilizzare un metodo diverso se voglio ordinare e ordinarlo correttamente?UUID ordinabili e sovrascrivendo ActiveRecord :: Base
Ecco la salsa:
# lib/sortable_uuid.rb
module SortableUUID
def self.included(base)
base.class_eval do
scope :first, -> { order("created_at").first }
scope :last, -> { order("created_at DESC").first }
end
end
end
# app/models/item.rb
class Item < ActiveRecord::Base
include SortableUUID
end
Rails 4.2, Ruby 2.2.2
Riferimento:
- http://blog.nakonieczny.it/posts/rails-support-for-uuid/
- http://linhmtran168.github.io/blog/2014/03/17/postgres-uuid-in-rails/ (sezione Inconvenienti)