我正在构建一个RoR应用程序,其中每个记录都有一个唯一的7字符标记(十六进制)。我想在页面上创建链接,用户可以在该页面上提供该令牌并将其带到该记录的编辑路径。我已经搜过了WWW,似乎无法找到一种干净的方法来完成这项任务。
有什么想法吗?
我意识到我有轻微的重复风险,但这将是一个新奇的应用程序比什么都重要。
答案 0 :(得分:1)
如果您希望能够导航到/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
为所有节目,更新和销毁执行此操作:
(更好的是,编写一个控制器函数来自动处理它!)
def show
@model = Model.find(params[:id])
...
end
---变成--->
def show
@model = Model.find_by_hex_token(params[:model])
...
end