2015-05-31 76 views
1

我在我的favorites_controller中創建了一個「銷燬」方法。不知道我應該如何表達下面的註釋要求,要求在參數中找到當前用戶的最愛ID。我知道我很接近,但是我目前對ruby語法的知識還沒有達到標準。當我使用我的應用程序的affvorite函數時,會彈出一個「未定義的方法`最喜歡的'#」錯誤,並指向下面的[initialized?]'favorite'變量行。請幫忙。謝謝!Ruby on Rails偏愛控制器和語法問題

def destroy 
    # Get the post from the params 
    @post = Post.find(params[:post_id]) 
    # Find the current user's favorite with the ID in the params 
    favorite = current_user.favorite.find(params[:id]) 
    if favorite.destroy 
     flash[:notice] = "Post was succesfully un-favorited" 
     redirect_to @post 
     # Flash success and redirect to @post 
    else 
     flash[:error] = "There was an error in un-favoriting this post" 
     redirect_to @post 
     # Flash error and redirect to @post 
    end 
    end 
+2

能否請你告訴我們的用戶和喜歡的關係我想這是的has_many如果是這樣的話,那麼你應該使用'CURRENT_USER .favorites' –

+0

謝謝阿南特!有效!我們下面的評論雖然早些回答,所以我給了他信用。希望沒關係。 – Kris

+0

不用擔心,我仍然會把我的答案放在下面,可能會幫助其他人:) –

回答

2

我假設用戶可以有很多收藏,因爲你通過params[:id]試圖單一出來。如果是這種情況,請嘗試將.favorite更改爲.favorites

希望能解決它!

+0

謝謝卓然!有效! – Kris

0

我想用戶和喜歡之間的關係的has_many所以在這種情況下,你應該使用 current_user.favorites