我是Rails的新手,我刚刚完成了this教程。它向您展示了如何构建一个应用程序,其中您有可以创建笔记的用户,但问题是每个人都可以看到所有用户创建的笔记。我希望每个用户都有自己的笔记,只有他们才能看到。
答案 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)
如果您希望每个用户只看到他的帖子,则表示您需要某种基本身份验证。它允许您确定用户登录时可以看到哪些帖子。
有一些宝石允许实现此功能,其中Devise 安装设备时,您将获得一个方法:控制器中的current_user。 因此,使用该方法,您可以轻松引用用户注释。当然,您需要首先在用户和笔记模型之间创建关联。
或者您可以为每个用户生成唯一ID,并将其存储在Cookie中。每次请求时,您都会检查cookie中是否有唯一的ID。每次用户创建注释时,都会将此user_id存储在notes表中。之后,您可以检索特定用户的所有注释:
@notes = Note.where(user_id:user_id)
希望这会有所帮助,祝你好运