2014-04-17 52 views
1

我已經安裝了設計並希望根據用戶是否已通過認證來限制對某些頁面的訪問。使用設計器限制對頁面的訪問

我的第一種方法是打開每個視圖,並添加:

<% if mpuser_signed_in? %> 
    #rest of code 
<%end> 

(我的模式被稱爲mpusers)

但我認爲有可能是一個更好的解決方案?

達里奧

回答

4

before_filter :authenticate_user!控制器用於需要身份驗證的用戶的操作。在這個例子中,我們需要驗證用戶的創建,編輯和銷燬操作。

class YourController < ApplicationController 
    before_filter :authenticate_user!, only: [:new, :edit, :update, :destroy] 
+0

如果我想讓用戶通過身份驗證以訪問特定視圖,那麼該怎麼辦? (即,我有我的/任務模型,你的建議我會限制訪問/任務/新,/任務/ 1 /編輯等) – Dario

+0

然後你將相應的視圖方法添加到'only:'數組,它沒有什麼不同。如果您希望視圖的特定部分僅對經過身份驗證的用戶可見,則您在上面做的事情是有意義的,但如果是整個視圖,則在控制器級別執行。 – tirdadc

+1

嗨Tirdadc,謝謝,只是不確定如何實現你的意思。我在哪裏可以找到顯示模型的「主頁」所需的方法?而且,有沒有辦法針對特定參數進行過濾? (即:用戶ID或其他自定義參數,如auth_level> 2) – Dario