Ruby on rails Rails 3:访问活动记录模型时出错';s属性
我有一辆汽车,它是ActiveRecord:Ruby on rails Rails 3:访问活动记录模型时出错';s属性,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一辆汽车,它是ActiveRecord: class Car < ActiveRecord::Base ... end class-Car
class Car < ActiveRecord::Base
...
end
class-Car
在DB中的car表中,有一个名为“available”的列,它保存布尔值。我尝试在模型类中访问此值,如下所示:
class Car < ActiveRecord::Base
...
if self.avaliable #error msg: undefined method 'available'
end
end
class-Car
但我收到错误消息“未定义的方法“可用””,为什么?如何访问汽车模型的此属性?您不能在类主体中内联编写ruby代码,应该将其包装
if self.avaliable #error msg: undefined method 'available'
end
作为一种方法。您可以在过滤之前调用它
class Car < ActiveRecord::Base
before_filter :check_avaliable
def check_avaliable
if self.avaliable
...
end
end
end
class-Car
可用
(而不是可用
,正如您在self.available
中所写的那样)是一个实例方法,您不能从类访问实例方法
从实例可以访问实例方法和类方法,但从类不能访问实例方法,因为需要有效的实例
现在的问题是:你想做什么?如果您告诉我们您想做什么,我们可能会提供更好的答案。如果您将此self.available表单称为类的class方法,那么首先您需要创建car类的@car对象,然后您可以轻松地调用@car.available 否则,如果您正在调用类的实例方法,并且调用对象在那里可用,那么self.available将起作用 关于类方法和实例方法以及如何调用它们,请看这里。
是的,他会<代码>类车