0

我正在尝试允许当前用户邀请另一个用户并将该新受邀者分配给列表,但是当受邀用户去注册时出现错误。

有两个模型,用户和列表,它们与每个模型上的 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 回答