想在后台实现授权,想自动发现所有 ActiveRecord::Base 的模型,并对 crud 操作进行授权 另外有没有什么现成的 gem 可以实现后台配置 cancan 权限的捏?
对 ActiveRecord 进行 mokey patch,类似这样——
1.9.3p327 :001 > class Foo 1.9.3p327 :002?> def self.inherited(subclass) 1.9.3p327 :003?> @@_subclasses ||= [] 1.9.3p327 :004?> @@_subclasses << subclass 1.9.3p327 :005?> end 1.9.3p327 :006?> end => nil 1.9.3p327 :007 > class Child1 < Foo;end => nil 1.9.3p327 :008 > class Child2 < Foo;end => nil 1.9.3p327 :009 > Foo.class_variable_get "@@_subclasses" => [Child1, Child2]
ActiveRecord::Base.subclasses
#1 楼 @fsword #2 楼 @quakewang
Model 没有被调用之前不显示……
#3 楼 @wuwx Production 环境应该没问题
参考 stackoverflow 的这个问题:http://stackoverflow.com/a/10712838/1093890
#5 楼 @yanhao 感谢感谢
#2 楼 @quakewang 原来有现成的了
#2 楼 @quakewang 是 protected 的吧,这个方法。