在我正在构建的rails应用程序中,我有一个名为buckets
的资源。
我现在的任务是为这些存储桶创建秘密链接,例如 -
http://myapp.dev/x/:secret_unique_hash_for_bucket_one/
- 映射到 -
http://myapp.dev/buckets/1
- 不暴露实际身份证。
我还要求此秘密链接上的所有操作和子资源都可以使用 -
http://myapp.dev/x/:secret_unique_hash_for_bucket_one/edit
http://myapp.dev/x/:secret_unique_hash_for_bucket_one/ideas/1
最后,我还要求url helpers(edit_bucket_path
)保留资源ID的保密性。
如何最好地构建这个?
答案 0 :(得分:0)
创建存储桶时,您可以将存储桶模型属性(或其中一些,显然不仅仅是id)散列到SHA256,并将其与模型一起保存。
然后在您的模型中,Bucket模型覆盖to_param
方法。
def to_param
self.hashed
end
然后您的路线将使用您的散列属性,而不是默认为ID。