1

我遵循Railcast#270的has_secure_password教程,並且已經可以正常工作。has_secure_password用戶授權

例如,我有我的頭以下:

<% if current_user %> 
    <li><%= link_to "Profile", current_user %></li> 
    <li class="last"><%= link_to "Logout", logout_path %></li> 
<% else %> 
<li><%= link_to "Login", login_path %></li> 
<li class="last"><%= link_to "Register", signup_path %></li> 
<% end %> 

但是,如果用戶可以猜測到某個特定頁面的路徑,然後如果他們登錄或沒有,他們可以查看頁面。什麼是最簡單的方法來防止這種情況,只有授權用戶查看某些頁面?軌道是否有內置的幫助?

回答

2

您可以在控制器中添加一個before過濾器,該過濾器可以完全滿足您的需求。喜歡:

class ProductController < ActionController::Base 
    before_filter :login_required, :only => [:new, :create, :edit, :update] 

    # ... 

    private 

    def login_required 
    unless current_user 
     flash[:alert] = 'Log in!' 
     redirect_to login_url, :status => 401 
    end 
    end 
end 

這是一個假想的例子與產品,但我想你會明白。

問候

托比亞斯