2014-08-29 56 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

相关问题