0

保存する前にメールフィールドを暗号化するためにbefore_createコールバック関数を使用しました。同様に、モデルでそれらを復号化してから、実際に表示に使用したいと思います。

これには何を使用する必要がありますか?

afer_saveコールバックメソッドを使用できますか?

4

1 に答える 1

2

同様のケースがここで説明されています: http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

class BankAccount < ActiveRecord::Base
   before_save      EncryptionWrapper.new
   after_save       EncryptionWrapper.new
   after_initialize EncryptionWrapper.new
end

class EncryptionWrapper
  def before_save(record)
    record.credit_card_number = encrypt(record.credit_card_number)
  end

  def after_save(record)
    record.credit_card_number = decrypt(record.credit_card_number)
  end

  alias_method :after_find, :after_save

  private
    def encrypt(value)
      # Secrecy is committed
    end

    def decrypt(value)
      # Secrecy is unveiled
    end
end
于 2012-07-10T05:30:55.200 に答える