rails3のroutesで:viaを指定するときは:get, :postだけではなく:putとかも忘れずに
confirm用のURLを設定するときに
-------------------------------------------
match "user/confirm(/:id(.:format))",
:action => :confirm,
:via => [:post]
-------------------------------------------
のようにすると新規作成はうまくいきますが、更新はroutesがないと言われます。
-------------------------------------------
match "user/confirm(/:id(.:format))",
:action => :confirm,
:via => [:post,:put]
-------------------------------------------
とするとうまくいくと思います。