如何找到_by owney在rails中的确切条目

时间:2012-05-20 17:21:34

标签: ruby-on-rails database ruby-on-rails-3 routing findby

我们有一个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 / f,我将获得带有f own_key的条目。我们如何管理我们只使用own_key获取条目? 它可以通过约束来运行吗?

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

马库斯

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

你可以在路径中使用约束条件或在控制器

中检查params [:own_key]

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