Stackoverflowers 様
他のユーザー (システム内では「所有者」と呼ばれます) が他のユーザーを登録できる情報システムを構築しています。招待機能を取得するために Devise Invitable を使用しています。招待されたユーザーには、確認リンクが記載された電子メールが送信されます。それをクリックすると、パスワードを設定してシステムにログインできます。
ユーザーが自分のパスワードを設定するときに、追加の検証を構築したいと考えています。ユーザーは、招待者が直接、または電話などで招待したユーザーに提供する「ユニコード」を入力する必要があります。ユニコードは、ユーザーを招待するときにデータベースに保存されます。
招待されたユーザーが無効な Uni コードを入力すると、ユーザーは同じページにリダイレクトされ、再試行する必要があります。 Uni-code のチェックを適用するにはどうすればよいですか? また、失敗した場合、適切なリダイレクトを行うにはどうすればよいですか?
# Controller for handling Owners
# This class uses Devise-Invite methods for inviting new Owners
class Devise::Invitations::OwnerInvitationsController < Devise::InvitationsController
# GET /owners/new
def new
super
end
# POST /owners
def create
params[:owner][:parent_id] = current_inviter
super
end
# PUT /owners
def update
if true #TODO: check if entered uni-code equals the owner's uni-code
super
else
#TODO: uni-code does not match, redirect (howto do a proper redirect)?
end
end
# GET /owners/invitation/accept?invitation_token={abcdef}
def edit
super
end