Rails, Mongoid: используйте пользовательский ключ и пользовательский формат ключа - PullRequest
2 голосов
/ 26 ноября 2010

У меня есть модель Account:

class Account
  include Mongoid::Document
  include Mongoid::Timestamps
  ...
end

Я хочу использовать конкретные идентификаторы с определенным форматом.Я хочу, чтобы id был 16-значный вместо 4ceede9b5e6f991aef000007, что-то вроде этого: 1111222233334444.

Как лучше всего это сделать?

1 Ответ

2 голосов
/ 26 ноября 2010

Если идентификатор является простым числом, попробуйте:

class Account
  include Mongoid::Document
  include Mongoid::Timestamps

  identity :type => Integer
end

account = Account.new :id => 1111222233334444
#=> #<Account _id: 1111222233334444, created_at: nil, updated_at: nil>
account.save
#=> true 
account
#=> #<Account _id: 1111222233334444, created_at: 2010-11-26 00:48:27 UTC, updated_at: 2010-11-26 00:48:27 UTC> 
Account.count
#=> 1 
Account.first
#=> #<Account _id: 1111222233334444, created_at: 2010-11-26 00:48:27 UTC, updated_at: 2010-11-26 00:48:27 UTC> 

Если вы тоже хотите использовать буквы в идентификаторе, вы можете вместо этого сделать identity :type => String.

...