0

我们有一个 show-action 应该通过 own_key 找到正确的条目。own_key 生成为 UUIDTools::UUID.timestamp_create().to_s。下面的问题现在在这里。

class ListController < ApplicationController
  respond_to :html, :xml, :json
  def show
    @list = List.find_by_own_key(params[:own_key])
    respond_with(@list)
  end
end

路线在这里所以生成

resources :lists
match '/:id' => 'list#show'

如果我们只在 / 之后键入一个简单的字母,为什么我们还会返回一个条目?own_key 看起来如此f6d47c20-a276-11e1-b127-68a3c454c2b4。因此,如果我们键入 /lists/fi,则获取带有 f own_key 的条目。我们如何管理我们只获得带有 own_key 的条目?它可以通过约束运行吗?

感谢您的帮助,如果有人可以帮助我们?

马库斯

4

2 回答 2

1

从您的路线中,params[:id]将包含我要搜索的内容,但是您正在使用params[:own_key]的内容将为零。您的代码将始终获取具有 null own_key 的行,而不是搜索具有指定值 own_key 的记录。

更改您的代码以使用 params[:id] ,您应该没问题

于 2012-05-20T18:50:22.190 回答
0

你可以使用约束来路由或检查控制器中的 params[:own_key]

:constraints => {:own_key=> /regexp pattern for uuid/}

于 2012-05-20T18:23:11.663 回答