在Rails 3中构建秘密链接

时间:2013-07-20 14:02:39

标签: ruby-on-rails-3 url routing structure private

在我正在构建的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的保密性。

如何最好地构建这个?

1 个答案:

答案 0 :(得分:0)

创建存储桶时,您可以将存储桶模型属性(或其中一些,显然不仅仅是id)散列到SHA256,并将其与模型一起保存。 然后在您的模型中,Bucket模型覆盖to_param方法。

def to_param
  self.hashed
end

然后您的路线将使用您的散列属性,而不是默认为ID。