如何在Rails中为每个用户显示不同的信息

时间:2014-03-19 13:29:41

标签: ruby-on-rails ruby

我是Rails的新手,我刚刚完成了this教程。它向您展示了如何构建一个应用程序,其中您有可以创建笔记的用户,但问题是每个人都可以看到所有用户创建的笔记。我希望每个用户都有自己的笔记,只有他们才能看到。

2 个答案:

答案 0 :(得分:1)

在您的控制器中,您需要将directs调用替换为您的Note模型,而是使用它的关系。 e.g:

def index
    # retrieve all users Note ordered by descending creation timestamp
    @notes = current_user.notes.order('created_at desc')
end

答案 1 :(得分:1)

如果您希望每个用户只看到他的帖子,则表示您需要某种基本身份验证。它允许您确定用户登录时可以看到哪些帖子。

  1. 有一些宝石允许实现此功能,其中Devise 安装设备时,您将获得一个方法:控制器中的current_user。 因此,使用该方法,您可以轻松引用用户注释。当然,您需要首先在用户和笔记模型之间创建关联。

  2. 或者您可以为每个用户生成唯一ID,并将其存储在Cookie中。每次请求时,您都会检查cookie中是否有唯一的ID。每次用户创建注释时,都会将此user_id存储在notes表中。之后,您可以检索特定用户的所有注释:

    @notes = Note.where(user_id:user_id)

  3. 希望这会有所帮助,祝你好运