[英]How do I restrict a role from not seeing prices on Products?
我有一个Product
模型,并且如果用户以guest
角色登录或未登录,我不希望他们能够在我的应用程序中查看产品的价格。
我正在使用Devise,CanCan和Rolify。
我在我的ability.rb
尝试了这个:
user ||= User.new # guest user (not logged in)
if user.has_role? :guest
can :read, [Product, Vendor, Banner]
cannot :read, [Product.price]
end
但这似乎不起作用。 我没有在视图中添加任何代码-我需要这样做,还是该ability
课程根本不显示价格?
我正在收回我所说的话。 您可以使用CanCan以某种方式执行此操作,但这似乎有些困难。 您可以尝试以下吗?
if user.has_role? :guest
can :read, [Product, Vendor, Banner]
cannot :view_prices, Product
end
然后,在您的视图中,您必须手动检查用户是否可以查看价格
<% if can? :view_prices, Product %>
<%= product.price %>
<% end %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.