Ruby模块self.class和class_inheritable_accessor

时间:2011-12-01 18:56:27

标签: ruby-on-rails ruby

有人可以向我解释这会做什么吗?

Module Foo
  class Bar
    class_inheritable_accessor :foobar
    def foobar
      self.class.foobar
    end
  end
end

我希望我能更清楚,但我不知道这是做什么的。我发现它是在我正在使用的一段代码中。

我在其他任何地方都没有看到foobar的任何其他定义。那么该方法究竟是什么引用的呢?本身?

似乎工作正常。

1 个答案:

答案 0 :(得分:1)

类可继承访问器允许类覆盖层次结构中的类变量。

我认为class_inheritable_accessor 已经定义了一个从可继承属性哈希中读取的类变量getter。您展示的示例似乎绕过了foobar,因此我不清楚原始意图是什么 - 您能展示更多背景吗?

请参阅here for a nice discussion