nested resources 一般用来搭配关联的 resources, cancan 可以根据父类实例来生成,或者过滤子类从而达到权限控制。
如果 在model 没有直接的 belongs_to or has_many
关联cancan 是不会正常工作的 除非, 提供了 parent.children parent.children.built 这样的方法给 cancan 调用, 一个解决方案是, 在父类中创建 一个 children 方法返回 一个 nest 的 resources 的 list。 但是在 bbtangcms 中 我使用的是单表继承 因此 会有一些 问题。
如果使用不到 对父类的认证 那么 完全可以不去使用 through
选项,
class Tag::TimelinesController < Tag::TagBaseController
load_and_authorize_resource
end