我正在尝试允许当前用户邀请另一个用户并将该新受邀者分配给列表,但是当受邀用户去注册时出现错误。
有两个模型,用户和列表,它们与每个模型上的 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]]
我在这里做错了什么?