2013-07-16 46 views
0

聽起來很簡單,對吧?我有在ApplicationController中此方法:Rails:檢查並重定向,除非布爾值

def authenticate_admin 
    redirect_to :root_path unless current_user.admin? 
end 

,這就是所謂的各種其它控制器,象這樣:

before_filter authenticate_admin 

但我得到的方法中的任何實例變量是該過濾器應用於錯誤返回零:

<% @expressions.each do |expression| %> 

有什麼想法?這對我來說似乎很奇怪。

回答

1

您是否將符號傳遞給過濾器?你需要傳遞一個符號。通過它的外觀,你傳遞了一個變量名稱,它不存在。

before_filter :authenticate_admin # correct usage 

你的例子顯示了這一點:

before_filter authenticate_admin # incorrect 

通知書丟失的結腸。

+0

現在完美運作。謝謝。我以爲我嘗試過之前沒有成功。 –