我目前在我的ApplicationController中有一些代码,用于检查用户是否已登录并具备执行给定操作所需的访问权限(测试发生在before_filter中)。
我需要在视图中实现相同的功能,以决定是否应该在列表视图中显示管理员链接,但如何避免在控制器和视图中重复编写代码呢?
我选择的方法是将user_can_edit_customers? 本质上作为 User 类上 'can_edit_customers?' 的包装:
ApplicationController:
class ApplicationController
然后在我的视图助手中做类似的事情。
这样所有功能都封装在 User 模型中,但我仍然需要在控制器和助手中定义包装器,但有没有更聪明的方法来处理呢?
注意,用户信息只是一个示例 - 这也适用于其他功能。