【发布时间】:2016-12-22 03:56:46
【问题描述】:
用户.rb
def has_delete_role? name
roles.each do |n|
return true if n == name
end
end
能力.rb
if user.has_delete_role? :business_delete
can :destroy, Business
end
index.html.erb
<% if can? :destroy, @business %>
<%= link_to 'delete', business_path(@business.id), method: :delete%>
<% end %>
这段代码允许有权访问删除按钮的用户。这里如果用户有权限,他可以访问所有对象的删除按钮。
EX:业务有10个对象id = 1到id = 10,如果他有权限,用户可以访问所有10个删除按钮
但现在我想根据对象设置权限。
EX:业务也是1到10,用户只能看到按钮2和5,因为用户数据表中有一个名为auth_ids []的字段,它存储[2,5]
如何做到这一点?
【问题讨论】:
标签: ruby-on-rails cancan