【发布时间】:2021-07-11 13:30:36
【问题描述】:
我有一个标准的 cancancan 设置。 Article 模型具有属性approved。然后标准设置:
# articles controller
load_and_authorize_resource only: [:index, :show]
def show
end
# ability.rb
# Solution 1
# can :show, Article, { approved: true }
# Solution 2
can [:show], [Article] do |article|
article.approved?
end
当我尝试任一解决方案时,结果会在控制台或调试器中按预期返回(即,如果文章已获批准,ability.can?(:show, @article) 返回 true,否则返回 false。
奇怪的是,当上面返回的false 明确指出它不应该被访问时,显示视图仍然可以在浏览器中访问。
我不知道为什么?
【问题讨论】:
标签: ruby-on-rails cancan cancancan