class TestController < ApplicationController def test @goodbay = TestClass.varible end end class TestClass @@varible = "var" end
我得到错误
undefined method 'varible' for TestClass:Class
在线@goodbay = TestClass.varible
怎么了?
解决方法
在Ruby中,必须通过该对象上的方法读取和写入对象的@instance变量(和@@类变量).例如:
class TestClass @@variable = "var" def self.variable # Return the value of this variable @@variable end end p TestClass.variable #=> "var"
Ruby有一些内置方法可以为您创建简单的访问器方法.如果要在类上使用实例变量(而不是类变量):
class TestClass @variable = "var" class << self attr_accessor :variable end end
Ruby on Rails专门为类变量提供a convenience method:
class TestClass mattr_accessor :variable end