データベースにユーザーを作成すると、一意の識別子文字列も作成されます。
私のルートでは、私は持っています:
match '/users/:unique_identifer', :to => 'users#show'
この部分は正常に機能しています。/ users / xyzに移動すると、適切なユーザーの表示アクションが表示されます。
ただし、ユーザーレコードを更新しようとすると、/ users/SOMENUMBERにリダイレクトされます。SOMENUMBERはユーザーのIDです。コントローラのshowアクションには次のものがあるため、これによりエラーが発生します。
def show
@user = User.find_by_unique_identifier(params[:unique_identifer])
end
つまり、showアクションは、ユーザーIDではなく、一意の識別子でのみユーザーを検索するようになりました。
更新アクションは次のとおりです。
def update
@user = User.find_by_unique_identifier(params[:unique_identifer])
if @user == current_user && @user.update_attributes(params[:user])
redirect_to @user
else
redirect_to @user
end
end
更新アクションを取得して、ユーザーの表示アクションにリダイレクトしますが、/ users / IDの代わりに適切なリンク(/ users / unique_identifier)を使用するにはどうすればよいですか?