Rails 4 Pundit - 父模型中的策略
Rails 4 Pundit - policies in parent models
我正在尝试将 rails 4 与专家策略一起使用。
我有一个配置文件模型和一个项目模型。项目是带有配置文件的 HABTM。
我有一个项目策略,它有一个创建?动作(设置为真)。
在我的个人资料显示页面中,我希望允许用户创建新项目,前提是他们的项目策略创建操作允许。
<% if policy(@project).create? %>
<%= link_to 'CREATE A PROJECT', new_project_path, :class=>"btn btn-info" %>
<% end %>
当我尝试这个时,我得到了一个 nil 策略错误。是因为您不能在配置文件视图中使用项目操作吗?如果是这样,我该如何解决才能在我的个人资料显示页面上显示一个新项目按钮?
您可以使用 ProjectPolicy.new(current_user, @project).create?
来指定 ProjectPolicy
。
然而,正如@miler350 所说,@project
可能是 nil
。 (例如:用户没有创建项目)。确保您的 ProjectPolicy#create?
正确处理 nil
。
我正在尝试将 rails 4 与专家策略一起使用。
我有一个配置文件模型和一个项目模型。项目是带有配置文件的 HABTM。
我有一个项目策略,它有一个创建?动作(设置为真)。
在我的个人资料显示页面中,我希望允许用户创建新项目,前提是他们的项目策略创建操作允许。
<% if policy(@project).create? %>
<%= link_to 'CREATE A PROJECT', new_project_path, :class=>"btn btn-info" %>
<% end %>
当我尝试这个时,我得到了一个 nil 策略错误。是因为您不能在配置文件视图中使用项目操作吗?如果是这样,我该如何解决才能在我的个人资料显示页面上显示一个新项目按钮?
您可以使用 ProjectPolicy.new(current_user, @project).create?
来指定 ProjectPolicy
。
然而,正如@miler350 所说,@project
可能是 nil
。 (例如:用户没有创建项目)。确保您的 ProjectPolicy#create?
正确处理 nil
。