【发布时间】:2016-07-19 11:57:54
【问题描述】:
下午,有点问题,不知道怎么解决。
我正在尝试设置一些规则,只允许特定类型的用户角色将模型上的状态属性更新为特定状态。
所以我考虑用 pundit 来做这件事,因为这似乎是一个授权问题,但是一个问题是你不能将参数传递给我也需要访问的 pundit 策略(所以我可以看到它们是什么属性试图更改为),似乎将参数传递给权威政策是不好的做法。
下一个选项是让它成为模型中的回调,但是这里的问题是我无法访问回调中的 current_user 并且再次将 current_user 助手添加到模型中似乎是不好的做法。
所以我可能只剩下在控制器中做这件事了吗?似乎又不是合适的地方呢?
一个更容易理解的例子:
我希望允许具有管理员角色的用户将帖子的状态更改为“已解决”,不允许其他人将状态更改为“已解决”
【问题讨论】:
-
您可以将 current_user 传递给局部变量并在模型中执行此操作。这是一种有意义的方法,而不是控制器级别。
标签: ruby-on-rails ruby