0

私のアプリケーションのユーザーの URL は次のとおりです。

localhost:3000/users/1/dashboard

誰かがuser IDURL の をユーザーが割り当てられていない番号に手動で変更すると、次のエラーが表示されます。

Couldn't find User with id=X.

ユーザーを別の場所に戻す方法はありますか?

user_controller.rb で次のようなことを試しました。

@user = User.find(params[:id])

unless @user
  redirect_to root_path
end
4

2 に答える 2

3

はい、例えば:

def dashboard
  begin
    @user = User.find(params[:id])
  rescue ActiveRecord::RecordNotFound
    redirect_to root_path
  end
end

レコードが見つからない場合、ActiveRecord は例外を発生させますunless @user ...

于 2013-05-27T19:54:51.237 に答える
1

resque を必要としない別の方法は、レコードが見つからない場合に nil を返す find_by_id を使用することです。

def dashboard
  @user = User.find_by_id params[:id]
  redirect_to root_path unless @user
end
于 2013-05-27T21:07:23.040 に答える