2013-03-08 42 views
0

我是一個新手導軌。我想檢查一個頁面是否受到保護,如果它受到保護,則將用戶重定向到一個登錄頁面。由於某種原因,它不工作。Rails的before_filter檢查受保護的頁面

我已將此添加到控制器的頂部:

before_filter :check_access, :only => [:show] 

我將此代碼添加到Posts控制器:

def check_access 
    @post = Post.find(params[:id]) 
    redirect_to login_url unless @post.published != '2' 
end 
+0

如果@ post.published ='2',爲什麼你不這樣做?除非有一個!不好紅寶石 – 2013-03-08 22:22:12

+0

歡迎來到StackOverflow。描述症狀會很有幫助。而不是「由於某種原因無法正常工作」 - 請嘗試「受保護的頁面正在加載而不是重定向」。 – Tass 2013-03-08 22:38:37

+0

你確定'published'方法返回一個字符串嗎?如果它返回一個Fixnum,這個條件永遠不會是真的。 – Eru 2013-03-08 23:10:11

回答

0

更多信息將有助於診斷問題。我假設@ post.published是一個標誌,指示該帖子已發佈。您可以確保從控制檯正確設置* login_url *路徑。

rake routes | grep "login_url" 
+0

我解決了它,很抱歉沒有實現任何人的迴應 – user2150156 2013-04-16 00:01:37