[英]Rails CanCan only show data that user created
我正在使用Devise注冊帳戶和登錄/注銷。 我要添加的下一個功能是僅顯示為給定用戶輸入的數據。 例如,如果我創建一個新的“東西”(在我的情況下為客戶端,在/ clients / new),我只希望創建該東西的人能夠查看它。 現在,如果我登錄並創建一個新客戶端,然后以其他用戶身份注銷並重新登錄,則可以看到以其他用戶身份創建的客戶端。 應該對此加以限制,以使作者是唯一可以閱讀,更新和銷毀其客戶的人。
我現在已經看了3次CanCan上的Ryan Bate的截屏視頻 ,但似乎只涉及將其設置為不同的角色,而不是根據作者來限制內容。
我該如何使用CanCan做到這一點?
我當前的ability.rb
除了空的initialize(user)
方法外什么都沒有。
我已經在該方法中嘗試過此方法:
can :update, Client do |client|
client.try(:user) == user
end
同
<% if can? :update, @client %> ... <% end %>
在索引視圖中顯示客戶端的循環周圍,但無濟於事。
我認為使用CanCan過濾結果不是最佳解決方案。 如果用戶為“ has_many”客戶端,則在您的控制器方法中僅查詢用戶的客戶端:
@clients = current_user.clients
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.