私は、attr_encrypted gemを使用してテーブル内のフィールドを暗号化しました。今私はフォームから取得している値とその特定のフィールドを照会する必要があります。これどうやってするの?Rails 3.1 attr_encrypted gem(暗号化フィールドのwhere句)で暗号化されたデータベースの照合
EDIT:暗号化されたフィールドの数を照会する必要があります。例えば:あなたがこれを行うことができる必要がありますので
私は、attr_encrypted gemを使用してテーブル内のフィールドを暗号化しました。今私はフォームから取得している値とその特定のフィールドを照会する必要があります。これどうやってするの?Rails 3.1 attr_encrypted gem(暗号化フィールドのwhere句)で暗号化されたデータベースの照合
EDIT:暗号化されたフィールドの数を照会する必要があります。例えば:あなたがこれを行うことができる必要がありますので
attr_encrypted
インターセプトfind_by
方法は、(where句で使用してOR条件)encrypted_nameなど、encrypted_emailに検索:
class User < ActiveRecord::Base
attr_encrypted :email, :key => 'a secret key'
attr_encrypted :password, :key => 'some other secret key'
end
User.find_by_email_and_password('[email protected]', 'testing')
これは
User.find_by_encrypted_email_and_encrypted_password('ENCRYPTED EMAIL', 'ENCRYPTED PASSWORD')
に書き換えます
class User < ActiveRecord::Base
attr_encrypted :email, :key => 'a secret key'
end
電子メールが「[email protected]」のユーザーを取得するクエリを作成する場合は、
012私は、電子メールや年齢や名前で検索すると、すべての3が暗号化されていることを言いたい場合はどうUser.where(encrypted_email: User.encrypt_email('[email protected]'))
または
User.scoped_by_email('[email protected]') # works only for dynamic scope methods
? – phoenixwizard
ActiveRecordの[dynamic finders](http://api.rubyonrails.org/classes/ActiveRecord/Base.html)の概念に精通していますか? –
はい私はそれに精通していますが、私は "または"条件に使用していません。私はそれが "と"のためだけに使用できると思います。私が間違っているなら、私を訂正してください。 – phoenixwizard