![]() |
1
19
我在找到答案 here . 这是我的方法:
添加
创建
更新initialize Pundit方法。
|
![]() |
2
1
依赖于当前用户和域模型是一种代码气味,但如果确实需要,则可以使用带有任意数量参数的自定义查询方法,如果不满足要求,则引发异常:
这个
|
![]() |
3
1
我不明白这种想法是什么,即向Pundit传递额外参数是错误的编码。我的意思是,当然,这就像一个大案件陈述。如果你可以通过更好的设计来避免它,那么就这样做,但你通常会面临这样的选择:要么将授权逻辑溅入其他文件,要么将额外的信息传递给Pundit。 下面是我编写的代码,让我使用Pundit类检查用户是否被允许对给定列进行排序(resource_class是我写的另一个方法,它返回关联控制器中关联的activerecord类):
如果您不希望授权逻辑分散到更多的类中,并且希望允许用户对其他用户看不到的字段进行排序,那么这确实是不可避免的。如果不创建特殊的活动记录排序对象,这是不可避免的,因为它不是要返回的任何单个对象的属性,而是要对其进行排序的列。 |
![]() |
4
0
除了来自@Rowandish,在我的情况下,我不得不使用
并这样定义了专家用户:
在我的控制器中,我正在执行这个请求
最后我的警察是这样的:
|
![]() |
Jeremy Thomas · Rails 4 API:创建嵌套资源 7 年前 |
![]() |
Joao Quaresma · 将现有项目添加到待办事项列表 7 年前 |
![]() |
anonn023432 · 预览对话中的最后一条消息 7 年前 |
![]() |
ankur · 解析ul和ol中的嵌套li 7 年前 |
![]() |
petspanda D · 在Ruby on rails中解码 7 年前 |
![]() |
Vishal Goel · 适用于多种型号的Rails单通表 7 年前 |
![]() |
ankur · 在哈希[重复]中查找缺少的键 7 年前 |