Spec-Zone.ru › Ruby on Rails 6.1

модуль ActiveRecord::SignedId

Active Record Подписанный идентификатор

Общедоступные методы экземпляра

signed_id(expires_in: nil, purpose: nil) Показать исходный код
# File activerecord/lib/active_record/signed_id.rb, line 112
def signed_id(expires_in: nil, purpose: nil)
  self.class.signed_id_verifier.generate id, expires_in: expires_in, purpose: self.class.combine_signed_id_purposes(purpose)
end

Возвращает подписанный идентификатор, сгенерированный с использованием предварительно настроенного ActiveSupport::MessageVerifier экземпляра. Этот подписанный идентификатор защищён от подделки, поэтому его безопасно отправлять по электронной почте или делиться с внешним миром. Его можно дополнительно настроить на истечение срока действия (по умолчанию срок действия не настроен), а также ограничить определённым назначением. Если дата истечения срока действия была превышена до вызова find_signed, то идентификатор не найдёт соответствующую запись. Если задано назначение, то оно также должно совпадать.

Если вы случайно выпустили подписанный идентификатор, который хотите отозвать раньше, чем дата истечения срока действия (или, возможно, вы забыли установить дату истечения срока действия, хотя и намеревались это сделать!), вы можете использовать назначение, чтобы по существу добавить версию к signed_id, как показано ниже:

user.signed_id purpose: :v2

Затем вы измените вызовы find_signed , чтобы потребовать этого нового назначения. Любые старые подписанные идентификаторы, которые не были созданы с указанным назначением, больше не смогут найти запись.

© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API