如果我有用户对象,并且用户有一个basicinfo。在用户显示操作中,我有:
def show
@user = User.find params[:id]
authorize @user
end
在show.html.erb中,我必须显示用户的basicinfo,例如:
User name is: <%= @user.basicinfo.name %>
在这种情况下,我是否还应该在用户show action中授权basicinfo?
def show
@user = User.find params[:id]
authorize @user
authorize @user.basicinfo, :show?
end
答案 0 :(得分:1)
授权适用于整个行动。
如果你想在视图中过滤掉一些元素,你可以在临时的基础上,基本上应用你在xxxPolicy类中使用的任何属性(上面没有提供)
通过Pundit处理用户授权可能过于复杂
def initialize(user, user)
在用户操作方面,我肯定会对视图进行过滤