我有一个使用设计和cancan的rails应用程序。
我有一个帖子资源,用户(登录或不登录)可以阅读:
user ||= User.new
if user.has_role? :admin
can :manage, :all
else
can :read, Post
end
我使用标记系统对帖子进行分类,我想创建一个名为“受限制”的标记,其显示操作仅限于在用户中签名。
以下是我如何使用受限制的标记调用帖子:
@post.tags.find_by_name("restricted")
我应该在控制器中使用if语句还是以某种方式限制ability.rb文件中的操作?
答案 0 :(得分:2)
您可以在can :read, Post
下面添加以下代码:
cannot :read, Post, tags: { name: "restricted" }
此限制用户未登录无法阅读帖子标签的名称为“受限制”。