2012-06-14 58 views
1

所以,我有這樣的代碼在一個控制器:Rails的:如何使用的before_filter來保護多個方法

before_filter :require_login, :only => :new, :edit, :destroy 

我的控制器具有下列方法:指數,新建,編輯,創建,更新,顯示,破壞。 我想要做的就是用login_required(:require_login中的代碼)保護方法:new,edit,destroy,但上面的代碼不起作用,例如我可以保護一個方法,例如我有,例如:

before_filter :require_login, :only => :new 

但我想保護他們三個,我該怎麼辦?

回答

3

你錯過了周圍的only選項的值括號:

before_filter :require_login, :only => [:new, :edit, :destroy] 

它不工作,因爲Ruby解釋器不知道在哪裏只有選項開始並繼續參數before_filter。這是你需要明確容器的情況。

+0

謝謝剛剛發現,在閱讀您的答案之前,對不起。 – Zauu

0

使用數組:

before_filter :require_login, :only => [:new, :edit, :destroy] 
0

哦,我是個傻瓜!這只是把它們放在陣列形式的問題 - 。 - 像這樣:

before_filter :require_login, :only => [:new, :edit, :destroy] 

對不起,明顯的問題。

相關問題