我正在使用 Devise 注册帐户和登录/注销。我要添加的下一个功能是仅显示为给定用户输入的数据。例如,如果我创建一个新的“东西”(在我的例子中是一个客户端,位于 /clients/new),我只希望创建该东西的人能够查看它。现在,如果我登录并创建一个新客户端,然后注销并以其他用户身份重新登录,我可以看到我以其他用户身份创建的客户端。这应该受到限制,以便作者是唯一可以读取、更新和销毁自己的客户端的人。
我已经在 CanCan 上观看了 Ryan Bate 的截屏视频3 次,但似乎只是针对不同的角色进行设置,而不是根据作者限制内容。
我该如何使用 CanCan 来解决这个问题?
我的 current除了一个空方法ability.rb
之外什么都没有。initialize(user)
我在那个方法中试过这个:
can :update, Client do |client|
client.try(:user) == user
end
和
<% if can? :update, @client %> ... <% end %>
围绕在索引视图中显示客户端的循环,但无济于事。