3

私はショーコントローラーを変更して、IDではなくパーマリンクでレコードを検索するようにしました(SEOのジューシーさのため)。

def show
  @project = Project.find_by_permalink(params[:id])
end

しかし、localhost:3000 / projects / fooと入力すると(そしてfooパーマリンクを持つプロジェクトがない場合)、404が見つからない代わりに500サーバーエラーが発生します。

これはなぜですか、どうすれば修正できますか?

4

3 に答える 3

7

これは 2.3 の追加かもしれませんが、次のように動的ファインダーの後に感嘆符を使用できます。

def show
  @project = Project.find_by_permalink!(params[:id])
end

何も見つからない場合は、ActiveRecord::RecordNotFound例外が発生します。

于 2009-03-26T01:22:30.277 に答える
0

または、404 例外を発生させることもできます。

于 2009-03-26T00:44:59.897 に答える