現在のユーザーが別のユーザーを招待し、その新しい招待者をリストに割り当てられるようにしようとしていますが、招待されたユーザーがサインアップしようとするとエラーが発生します。
UserとListingの2つのモデルがあり、各モデルのhas_and_belongs_to_manyに関連しています。トークンと、招待者を割り当てる必要のあるリストを含む招待モデルもあります。
私はデバイス登録コントローラーをオーバーライドしています:
def new
resource = build_resource({:invitation_token => params[:invitation_token]})
resource.email = resource.invitation.recipient_email if resource.invitation
respond_with resource
end
# POST /resource
def create
resource = build_resource
resource.listings << resource.invitation.listing if resource.invitation
. . .
新しいユーザーを招待してサインアップ(登録/新規)ページに移動し、フォームに入力して[送信]をクリックすると、正常に機能します。ただし、フォームの一部を見逃して検証エラーが発生した場合、フォームに正しく入力して[送信]をクリックすると、次のエラーが発生します。
Couldn't find Listing with id=0
次の行でエラーが発生しているようです。
resource.listings << resource.invitation.listing if resource.invitation
その行がなければ、エラーは発生しません。
サーバーログからのエラーは次のとおりです。
Listing Load (0.3ms) SELECT "listings".* FROM "listings" WHERE "listings"."id" = $1 LIMIT 1 [["id", 0]]
私はここで何が間違っているのですか?