0

own_key によって正しいエントリを見つける必要がある show-action があります。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'

/ の後に単純な文字を 1 つだけ入力すると、エントリも返されるのはなぜですか? own_key はそう見えますf6d47c20-a276-11e1-b127-68a3c454c2b4。したがって、/lists/fi と入力すると、f own_key でエントリが取得されます。own_key を持つエントリのみを取得するにはどうすればよいでしょうか? 制約によって実行できますか?

誰かが私たちを助けることができれば助けてくれてありがとう?

マーカス

4

2 に答える 2

1

あなたのルートから、params[:id]検索するI'dが含まれますが、使用しparams[:own_key]ているものはnilになります。コードは、own_key の指定された値でレコードを検索する代わりに、null の own_key で行を常にフェッチします。

params[:id] を使用するようにコードを変更すれば問題ありません

于 2012-05-20T18:50:22.190 に答える
0

U は、ルートに制約を使用したり、コントローラーで params[:own_key] をチェックしたりできます

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

于 2012-05-20T18:23:11.663 に答える