文章

目前顯示的是 八月, 2007的文章

使用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 小弟使用前者。

sql function最佳效能寫法

sql提供一些方便的查詢function,例如count、min、max、sum等等 但究竟怎麼寫效能會比較好呢? 一般常見的寫法有以下三種(假設主鍵是id) SELECT COUNT(*) FROM `table` SELECT COUNT(1) FROM `table` SELECT COUNT(`id`) FROM `table` 小弟廢話不多說了,直接po上我自己的測試數據 ___COUNT(*) ______ COUNT(1) ______ COUNT(`id`)____ 0.1283900737760 | 0.1033070087430 | 0.0965209007263 0.0977160930634 | 0.0935349464417 | 0.0874459743500 這是一次連續查詢1000次,對三者輪流查詢100次的total 可以發現COUNT(`id`) 的寫法明顯獲勝,感謝CFC大大提示可能是因為主鍵具有索引性(index),所以查詢速度較快。 分享給大家 :)