0

嗨聪明的程序员,

我一直在搜索和阅读几天,但我需要一些 Rails 帮助-

这是我的目标:我想为每个用户制作一个多页的配置文件,并且我想用配置文件控制器来处理这个配置文件。

问题?如何使“显示”REST 操作应用于整个控制器而不是仅应用于一页?具体来说,如何在 Profile 控制器中同时提供与登录用户和当前用户页面相对应的 @current_user 和 @user 变量。

我不确定我是否应该在路由中创建具有多个 :id 的路由,或者是否有某种方法可以在登录用户登录时将登录用户持久保存在 @current_user 之类的东西中,这在任何地方都可用,然后我将使用路径中的个人资料用户的 :id 。我很确定 facebook 会做类似 facebook.com/{your_id}/{their_id}/ 的事情。

我尝试从我的 session_helper.rb 类访问 @current_user 但它出现 nil 并且我不确定如何传递 :id 以使用 User.find(params[:id]) 因为配置文件控制器不隶属于资源对于用户模型。

任何提示或有用的阅读链接将不胜感激。我是一个初学者,所以如果我违背常规,请随时提出更好的行动方案。提前致谢!

4

1 回答 1

0

您可能不知道,但您可以存储会话数据,而 user_id 是人们在其上保存的非常常见的东西。

所以为了在登录时保存

session[user_id] = ....

然后你可以在帮手上有这样的东西 def current_user User.find(session[user_id]) if session[user_id] end

您应该检查名为 devise 的 gem。它提供了身份验证的所有功能,并且还提供了一个 current_user 方法。您至少应该检查一下,看看他们是如何实现该方法的。

于 2012-06-19T04:43:44.777 回答