使用acts as authenticated plugin在if current_user判斷出錯

如果跟著「Ruby on Rails專業網站案例實作」這本書走,在第八章安全性應該教到使用acts as authenticated插件,但奇怪的是layout中下面那行總會出錯,拿書商的範例檔來run也一樣。
<% if current_user %>

小弟花了幾天的時間才搞定(小弟不才orz),current_user是在.../lib/authenticated_system.rb 中的一個method,在未登入狀況下會傳回:false,因此將範例原始檔中、出錯的那行改成如下,便可正確執行。
<% if current_user != :false %>
另外一種做法是只將.../lib/authenticated_system.rb 中的current_user method改成如下
def current_user
@current_user ||= (session[:user] && User.find_by_id(session[:user])) || nil #原本最後一個是:false
end
小弟使用前者。

留言

這個網誌中的熱門文章

神之雫 的 雫 (雨下) 怎麼唸、意思是什麼

[已解決] 入肉 (肏) 的注音/怎麼唸?意思是什麼?(兒童不宜)

哆啦A夢放上任何東西都無違和感、彷彿有音效的滑鼠墊 這裡買得到