Rails 4 Pundit - 父模型中的策略

时间:2016-04-03 04:36:55

标签: ruby-on-rails pundit

我正在尝试将rails 4与权威策略一起使用。

我有个人资料模型和项目模型。项目是带有配置文件的HABTM。

我有一个项目策略,有一个创建?动作(设为真)。

在我的个人资料展示页面中,我想允许用户创建新项目,如果他们的项目策略创建操作允许它。

<% if policy(@project).create? %>
  <%= link_to 'CREATE A PROJECT', new_project_path, :class=>"btn btn-info"  %>
<% end %>

当我尝试这个时,我得到一个零政策错误。是因为您无法在个人资料视图中使用项目操作吗?如果是这样,我如何修复它,以便我可以在我的个人资料显示页面上显示一个新的项目按钮?

1 个答案:

答案 0 :(得分:0)

您可以将ProjectPolicy.new(current_user, @project).create?用于特定的ProjectPolicy

但是,就像@ miler350所说,@project可能是nil。 (例如:用户没有创建项目)。确保您的ProjectPolicy#create?正确处理nil