【发布时间】:2011-04-12 20:40:14
【问题描述】:
场景是这样的:
我的网站上有一些用户。一个用户有一个角色,这里相关的是admin和normal。我也有一个模型,我们就叫它SomeModel吧。
我为网站创建了一个后端,它使用 admin 布局。所有管理员都拥有编辑任何内容的完全权限。
问题在于这种关系:用户 -> 拥有 -> SomeModel。这意味着非管理员用户可以拥有SomeModel 的实例并且应该能够编辑该实例的数据。
SomeModel 的控制器有一个编辑操作,可以同时满足管理员和普通用户的需求。
但是,我不希望普通用户看到 admin 布局,而现在,我这样做的方式是这样的:
if current_user.admin?
render :layout => 'admin'
end
如果用户不是管理员,则默认为标准布局。我在 SomeModel 的所有操作中都有这一点,但它看起来不像是 Rails 的做事方式。
有没有更好的办法?
【问题讨论】:
标签: ruby-on-rails actionview actioncontroller