好的,请耐心等待。
我问了一个我不完全熟悉所有技术细节等问题的问题(换句话说,请放轻松,因为我没有完全达到标准)。
我已经使用 Devise 的宝石创建了一个 ROR 应用程序......它允许您登录、注册和注销。
它非常简单,它只有一个页面,您可以在其中填写您的姓名,最喜欢的爱好和书籍。(嘿,这只是一个例子)
我还使用他们的重定向代码访问此页面:
def after_sign_in_path_for(resource)
posts_path
end
问题是...此页面对登录的所有人公开。
如何将用户重定向到他们自己的页面?而不是看到其他人的"笔记"。
我环顾四周...德维斯有一个关于sessions_controllers的链接...
我用它吗?我不完全明白它的目的。
如果是,如何?仍然试图弄清楚所有的拼图是如何组合在一起的,当你对主题本身没有充分的理解时,很难做到这一点。
还是有另一种更简单的方法?
如果这个问题太宽泛,请告诉我...但我不太确定如何分解它。
从本质上讲,我真正要问的是,如何将用户定向到他们自己的页面,而看不到其他人的页面。
提前感谢任何帮助/建议/指示/等。
首先,假设您的用户模型has_many :posts
。在你的 PostsController 索引操作中(默认的 RESTful 路由是 posts_path),你可以放这样的东西:
@posts = current_user.posts
访问索引视图时,您只会看到当前用户的帖子。
话虽如此,您不仅限于索引视图。您可以自定义所需的任何视图,并使用声明的实例变量执行相应的控制器操作,您可以在视图中操作这些变量。
这有意义吗?
尝试:
def after_sign_in_path_for(user) # note: user or w/e your model is named
users_path(current_user)
end