【发布时间】:2020-03-31 16:28:07
【问题描述】:
我希望使用 CanCanCan 为能力权限执行加入关系。
最初,我得到了这个:
can :read, Block, page: { is_published: true }
鉴于来自docs 的信息,它说我可以将它们定义为哈希。但是,我必须重构它以检查 page、published_at 上的另一个字段是否存在或 nil。
这是我的新块:
can :read, Block, ["pages.published_at IS NOT NULL"] do |block|
block.page.published_at.present?
end
基本上这就是我想要的要点。但是,在执行 SQL 语句检查时,它会说 pages 不存在 - 这是预期的,因为我没有执行连接。
我想知道您是否必须在处理连接的Block 上创建一个范围。或者也许将连接放在can 语句中。
【问题讨论】:
标签: ruby-on-rails ruby cancancan