2012-05-25 103 views
0

我試圖讓當前用戶邀請另一個用戶,並將該新的被邀請者分配給列表,但在受邀用戶註冊時出現錯誤。將屬性分配給rails中的資源時出錯

有兩種模型,User和Listing,與每個模型上的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]] 

什麼我錯在這裏做什麼?這裏

回答

0

的問題是實際上我認爲文件在那裏我有以下幾點:

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

它是從先前試圖通過listing_ids在PARAMS遺留下來的。

相關問題