2010-07-01 69 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詳見來完成。