我想猴子補丁ActiveRecord :: FinderMethods爲了使用我的模型哈希ID。因此,例如User.find(1)變爲User.find(「FEW」)。可悲的是我的覆蓋方法沒有被調用。任何想法如何覆蓋find_one方法?Monkeypatch ActiveRecord :: FinderMethods
module ActiveRecord
module FinderMethods
alias_method :orig_find_one, :find_one
def find_one(id)
if id.is_a?(String)
orig_find_one decrypt_id(id)
else
orig_find_one(id)
end
end
end
end
這可能是一個非常糟糕的主意,它可能會破壞內部。爲什麼不編寫自己的替代方法並在控制器中使用它?而不是'find_hashed_id'。 – tadman
感謝您的輸入,我將使用find_hashed_id :) – krnflake