如何将用户重定向到他们自己的页面(ROR和Devise Gem)

时间:2013-01-30 20:14:12

标签: ruby-on-rails ruby-on-rails-3 devise routes

好的,拜托我,拜托。

我在问一个问题,其中我并不完全了解所有技术细节等等(换句话说,请不要轻易放弃我,因为没有完全符合标准)。

我用Devise的宝石创建了一个ROR应用程序...它允许您登录,注册和注销。

它非常简单,它只有一个页面,您可以在其中填写您的姓名,最喜欢的爱好,以及书。 (嘿,这只是一个例子)

我也使用他们的重定向代码来浏览此页面:

  def after_sign_in_path_for(resource)
    posts_path
  end
事情是......这个页面是公开的所有人谁登录。

如何将用户重定向到他们的自己的页面?并没有看到每个人的“笔记。”

我环顾四周......而且Devise在sessions_controllers上有a link ...

我使用那个吗?我不完全理解它的目的。

如果是,怎么样?仍然试图找出所有拼图块如何组合在一起,当你对这个主题本身没有完全理解时,很难做到这一点。

还是有另一种更简单的方法吗?

如果这个问题过于宽泛,请告诉我......但我不太确定如何将其分解。

实质上,我真正要问的是我如何将用户定向到他们自己的页面而不是看到任何其他人的页面。

提前感谢任何帮助/建议/指针等。

2 个答案:

答案 0 :(得分:1)

首先,让我们假设您的用户模型has_many :posts。在你的PostsController索引操作中(默认的RESTful route将是posts_path)你可以放这样的东西:

@posts = current_user.posts

并且在访问索引视图时,您只会看到当前用户的帖子。

话虽如此,您不仅限于索引视图。您可以自定义任何您想要的视图,并使用声明的实例变量进行相应的Controller操作,您可以在视图中操作这些变量。

这有意义吗?

答案 1 :(得分:0)

尝试:

def after_sign_in_path_for(user) # note: user or w/e your model is named
  users_path(current_user)
end