对 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 这样的授权宝石,但不确定这是否会矫枉过正。