2016-07-31 126 views
-1

我有一個用戶模型,其中有一個字段是admin。這個字段是一個布爾值。我只想要一個管理員用戶(admin field = true)能夠創建一個「季節」。我怎麼能在鐵軌上做到這一點?我甚至不知道從哪裏開始。我假設在我的應用程序控制器中,我可以定義「current_user_admin」並在我的視圖中使用「current_user_admin?」展示「創建季節」鏈接。但是我在模型中做了什麼?從數據庫中獲取當前用戶的「admin」屬性

我有CURRENT_USER定義爲這樣我application_controller:

@current_user ||=User.find_by id: session[:user_id] if session[:user_id] 

我該怎麼正確的道路?任何指導表示讚賞!

+1

您可以在控制器和視圖使用'@'current_user.admin爲確保記錄的任何行動?在用戶(會話)中存在。如果你不能說用戶是否在場,你可以使用'@ current_user.try(:admin?)'代替。另一種常見方法是定義訪客用戶模型,該模型將在默認情況下分配給用戶,或者如果已登錄,則由給定用戶替換。 – unused

+0

工作正常!哇,這比我想象的容易得多!謝謝! – Blogger11

回答

0

我將只允許加載有admin標誌航線上設置這樣的用戶:

@current_admin ||= User.find_by(
    id: session[:user_id], admin: true 
) if session[:user_id] 
+0

這是一個很好的觀點。在我的路線中,我有資源:季節做資源:舞蹈結束。除非你有管理員標誌,否則我不希望季節#新加載。我不會把你粘貼的日誌放在哪裏?四季控制器? – Blogger11