2011-10-15 56 views
1

我在閱讀敏捷web開發學習Rails 3.0。作者正在教會我們如何在會話控制器中使用這種創建方法來使用會話。在Rails中的會話

def create 

if user = User.authenticate(params[:name], params[:password]) 
session[:user_id] = user.id 
redirect_to admin_url 
else 
redirect_to login_url, :alert => "Invalid user/password combination" 
end 

end 

在行

會話[:USER_ID = user.id

確實符號:user_id某個地方,他分配到user.id之前?或者是這個符號:user_id在他分配user.id的時刻創建的?是否有一組符號屬於這個「會話」,或者你可以基本上創建任何名稱的東西並分配任何東西給它?

回答

1

它是動態創建的。您可以使用調試器並輸入p session來查看會話中的內容。如果你只是存儲字符串數據,那麼你可以非常必要的存儲任何你想要的,雖然有大小的限制。默認會話存儲在cookie中,但您也可以將SessionStore設置爲在服務器端。

我不確定您是否可以使用配置文件更改名稱,但session散列是Rails使用的特殊變量。所以你應該堅持做session[:my_var] = "whatever'

+0

所以你可以命名它別的東西(假設你不想遵循命名約定)? – Leahcim