ここに問題が1つあるのか、間違った方法でアプローチしたのかはよくわかりませんが、何か提案をいただければ幸いです。
アプリケーションでは、ユーザーがサインアップして特権を取得し、ページが設定されると、電子メールで同僚を招待できます。
メールの最後にアクティベーションコードがタグ付けされています。URLの例は「/user/ new/xxxxxxxxx」です。
問題は次のとおりです。同僚がアカウントにログインしてアプリの隅を設定できるように、基本情報だけを使用してユーザーアカウントも作成できるようにする必要があります。
同僚がユーザーサインアップフォームを間違えると、URLはアクティベーションコードがあることを忘れ、検証メッセージと「/users」のかなり裸のURLでジャンプして戻ります。同僚が間違いを修正して[サインアップ]をクリックすると、招待された同僚ではなく、本格的なユーザーとして送信されます。
これは、「users/new」ページにif句があるために発生します
<% if @activation_code %>
Show colleague messages of invitation and happiness
<% else %>
Show fully fledged user ego stroking messages
<% end %>
URLのコードパラメータを見つけるための私のルーティングは次のとおりです。
map.signup '/users/new/:code', :controller => 'users', :action => 'new', :code => nil
前に言ったように、私はこれに完全に間違ってアプローチしましたか?ここに1つの問題がありますか?
このRailsキャストエピソードを更新する私が抱えていた問題のほぼすべてを解決しました:ベータ版の招待状
その人が招待状から来ているかどうかを区別するために、私はこの条件ブロックを使用しました:
if !@user.invitation_id.blank?
そしてそれはうまくいきました。