使用令牌打开记录

Open a record using token

我正在构建一个 RoR 应用程序,其中每条记录都有一个唯一的 7 字符令牌(十六进制)。我想在用户可以提供该令牌并被带到该记录的编辑路径的页面上创建 link。我搜索了 WWW,但似乎找不到完成此任务的干净方法。

有什么想法吗?

我意识到我 运行 有轻微的重复风险,但这将是一个新奇的应用程序。

Rails

中的个性化 URL

如果你想导航到 /model/5na09zn 而不是 /model/{id}:

1. config/routes.rb

resources :model

--- 变成 --->

resources :model, :except => ['show', 'update', 'destroy']

get    'posts/:hex_token' => 'model#show', :as => 'model'
put    'posts/:hex_token' => 'model#update'
delete 'posts/:hex_token' => 'model#destroy'

2. app/controllers/model.rb

Do this for all show, update and destroy:

(Better yet, write a controller function to handle this automatically!)

def show
    @model = Model.find(params[:id])
       ...
end

--- 变成 --->

def show
    @model = Model.find_by_hex_token(params[:model])    
       ...
end