2010-07-01 67 views
3

我是新的来自php的rails,我正在学习带有mongodb的rails 3。获取会话数据在轨道上

我已经到了我有一个html表单文本到mongo的地步,我可以创建并以用户身份登录。

在用户登录时,我创建一个由漂亮创建一个会话认证

session[:user_id] = user.id 

现在我试图从会话获取USER_ID当我创建一个新的岗位,这样的岗位连接给用户。

在我的posts_controller,我有创建功能如下。但是,我相信我需要在这里传递user_id,或者最好是将它放在我的模型中。

但尝试任何形式的

@user_id = session[:user_id] 

至今未归任何有意义的东西。我是否以这种错误的方式去做?

我已经看过在数据库中描述存储会话的帖子,但我不明白为什么这对于获取当前登录的user_id这样简单的东西是必要的。

回答

1

如果你只是想跟踪在你的帖子数据库中创建帖子的用户?在post模型简单:

属于:用户

应该工作。只要你有在您的文章分贝USER_ID领域以及 (我不能完全肯定,如果这是你问的什么)

+0

感谢迈克,这实际上解决了这个问题(我正在做belongs_to和存储user_id作为关键)。 但是,我相信我会在未来的某个时刻从用户会话中获取用户。 我想现在我的问题的一部分是post模型如何知道当前登录的用户是哪个用户? – pedalpete 2010-07-01 22:18:41

1

在文档看看:Nifty Authentication

俏皮认证包括一个名为current_user的方法(Rails的大多数身份验证解决方案遵循相同的命名约定),它将完全按照它的说法执行,获取当前用户。所以,你可以做到以下几点:

post.user = current_user 

编辑这可以在创建正确的关系后,才由Mike详见来完成。