對於rails來說很新穎我想從社區獲得關於如何設置受限區域的建議。我剛開始使用Devise,並根據用戶是否登錄瞭解了幾種重定向/渲染視圖的不同方法,我想知道最好的方法是什麼。在軌道中設計限制區域時的最佳做法是什麼?
當前,當我希望登錄的用戶擁有不同的頁面視圖時,我一直在控制器中處理一個未登錄的用戶。例如:
class CollectionsController < ApplicationController
before_filter :authenticate_user!, except: [:index, :show]
def index
@collections = Collection.all
if current_user
render :admin
else
render :index
end
end
end
在這種情況下,:admin
和:index
分別對應於views/collections/admin.html.haml
和views/collections/index.html.haml
。管理視圖在佈局上與索引視圖相似,但具有編輯,更新,創建等的鏈接。
這是最好的方式嗎?
編輯:我也在考慮嘗試像CanCan這樣的授權寶石,但不知道這是否會過度殺傷。
我決定和CanCan一起去,太棒了!真的很容易實現和使用。 –
關於這種方法我唯一的問題是,因爲如果有人試圖儘可能地使用MVC,那麼在視圖中擁有這種邏輯是可以理解的嗎? –