[英]Activeadmin custom filter encrypted attribute
我正在嘗試使用過濾器搜索加密字段。
例如,假設在Rails控制台中,我可以執行以下操作:
u = User.find_by_email(“ someone@example.com”)
並獲得用戶。
但是,如果我這樣獲得用戶:
u = User.find(1)
返回的對象具有加密的電子郵件屬性。 也就是說,我仍然可以通過以下方式獲取該用戶的電子郵件:
電子郵件
但是,我不知道如何讓Activeadmin / meta_search發揮其魔力來通過電子郵件進行過濾。
有什么想法嗎?
我不確定您是如何加密電子郵件字段的,或者為什么呢,是否可以防止黑客將其捕獲到數據庫中? 如果您不希望在數據庫中公開某個屬性,但是希望能夠在Controller或Model層中進行搜索,則應創建一個虛擬屬性。 這可以使用Ruby attr方法完成,並且電子郵件應在創建時存儲。
attr_accessible :email, :email_encrypted
attr_reader :email
def email=(email)
@email = email
self.email_encrypted = ENCRYPTION.create(email)
end
ENCRYPTION是您使用的任何加密庫,例如BCRYPT。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.