【发布时间】:2012-05-25 17:23:38
【问题描述】:
我正在尝试允许当前用户邀请其他用户并将新受邀者分配给列表,但是当受邀用户去注册时出现错误。
有两个模型,用户和列表,它们与每个模型上的 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]]
我在这里做错了什么?
【问题讨论】:
标签: ruby-on-rails devise has-and-belongs-to-many