2014-08-29 46 views
0

我從在參數中顯示用戶標識切換到具有參數中的用戶名。我可以在我的用戶控制器顯示操作中使用一些幫助來列出當前用戶的問題。如何顯示屬於當前用戶的內容

例如,用戶「猴子」的ID爲5.我訪問他們的頁面/用戶/猴子。它應該僅列出來自該用戶的所有問題。在將用戶名添加到參數之前的這項工作。

我該如何修改recipient_id: params[:id]

用戶控制器:

def show 
    @user = User.find_by(username: params[:id]) 
    @question = Question.where(recipient_id: params[:id]).page(params[:page]).per_page(3) 

的當前設置將不顯示任何內容。如果我在show動作中指定了諸如recipient_id: 5的用戶標識,它將顯示該用戶的問題(儘管它將在所有用戶展示頁面上顯示相同的問題)。它不再使用參數id,因爲params現在包含用戶名。

回答

2

爲什麼不使用@user.id,而不是像params[:id]

@user = User.find_by(username: params[:id]) 
@question = Question.where(recipient_id: @user.id).page(params[:page]).per_page(3) 

        **OR** 

@question = @user.questions.page(params[:page]).per_page(3) 
+2

,或者甚至更好,@ user.questions(或其他)... – 2014-08-29 18:29:00

+0

燁,那將是更合適的。 – 2014-08-29 18:34:17

+0

我忘了添加'@'。愚蠢的錯誤。謝謝! – xps15z 2014-08-29 18:38:22

相關問題