0

現在のユーザーが別のユーザーを招待し、その新しい招待者をリストに割り当てられるようにしようとしていますが、招待されたユーザーがサインアップしようとするとエラーが発生します。

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]]

私はここで何が間違っているのですか?

4

1 に答える 1

0

ここでの問題は、実際には次のビューファイルにありました。

-if resource.listing_ids != []
  = f.hidden_field :listing_ids#, :value => resource.invitation.listing.id

これは、パラメータで listing_ids を渡そうとした前回の試みから残ったものです。

于 2012-05-25T18:59:52.817 に答える