文章

目前顯示的是 二月, 2008的文章

rails 2.0 如何把controller跟view放到子資料夾使用

(最下面有補充正解)

看過「ruby on rails專業網站案例實作」這本書的話
應該知道他們把幾個controllers放到admin資料夾底下
/app/controllers/books_controller.rb
移到/app/controllers/admin/ 底下

網址也從localhost/books
變成了localhost/admin/books

在升級到rails 2.0後卻讓我搞老半天
經過一些人的指導
我得到一個暫時的答案

答案是:
1.不需要用子資料夾就可以換網址
如果有需要從localhost/books
變成了localhost/admin/books
只要改routing即可達到目的
但是routing的設定在此不提
2.不應該把程式檔案放在子資料夾
不應該有撞名的問題,所以不需要到把controllers分到資料夾做分類
如果放到子資料夾了,routing路徑也改了,就會有template is missing的問題(我猜是因為rails假設不會用到子資料夾,所以樣板當然也不會去子資料夾找)

2010-2-23補充:正解是使用namespace
(正解其實早就知道了,只是我很久沒寫rails就懶得記筆記...XD)

acts as authenticated為什麼無法寫入actived_at欄位?

如果你跟我遇到一樣的狀況
在rails的acts as authenticated套件啟用activation認證碼開通功能的時候
發現activation_code這個欄位會被清除,但actived_at欄位卻還是NULL沒有變成寫入時間(導致登入時被擋掉)
那麼肯定跟我中同一個標了

Be careful !! *
User Activation is not secured. You need to add the following line
to your user model : attr_protected :activated_at

這段取自acts as authenticated的說明網頁
他叫你在user model加入「attr_protected :activated_at」這行

如果你乖乖的加入了
現在請把它刪除

嗯...然後這部份就正常了...


我猜可能是rails版本不同的關係
當時用「acts as authenticated activated_at」當keywords也沒搜尋到資料
總之
我花了23次的try and error才發現的(一切搞定時,table users已經autoindex到23了)

辛苦我自己了= ="