【发布时间】:2010-09-27 11:47:42
【问题描述】:
我的 ApplicationController 目前有代码来检查用户是否已登录并具有执行给定操作所需的访问权限(测试在 before_filter 中进行)。
我需要视图中的相同功能来决定是否应在列表视图中显示管理链接,但如何最好地避免在控制器和视图中重复代码?
我现在选择这样做的方式是拥有 user_can_edit_customers?本质上是“can_edit_customers”的包装器?在我的用户类上:
应用控制器:
类 ApplicationController然后在我的视图助手中做类似的事情。
这样所有功能都封装在 User 模型中,但我仍然需要在我的控制器和帮助器中定义包装器,但是有更聪明的方法吗?
请注意,用户内容只是一个示例 - 这也适用于其他功能。
【问题讨论】:
标签: ruby-on-rails ruby model-view-controller