Ruby on rails ActiveRecord::Base中的self和scope
可以预见,这将返回falseRuby on rails ActiveRecord::Base中的self和scope,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,可以预见,这将返回false self.method_defined? :fdsafdafewafd 可以预见的是,这一结果是正确的 self.method_defined? :data_source 这导致: self.data_source NoMethodError: # 我的问题是,鉴于这一事实(我怀疑这与范围有关),为什么上面的这一行会返回真值?如果该方法未在此范围内定义,是否应定义方法_?返回false?已附加文件:数据源向名为数据源的图形类添加实例方法。这就是为什么定义了s
self.method_defined? :fdsafdafewafd
可以预见的是,这一结果是正确的
self.method_defined? :data_source
这导致:
self.data_source
NoMethodError:
#
我的问题是,鉴于这一事实(我怀疑这与范围有关),为什么上面的这一行会返回真值?如果该方法未在此范围内定义,是否应定义方法_?返回false?
已附加文件:数据源
向名为数据源
的图形
类添加实例方法。这就是为什么定义了self.method\u?:数据源
返回true
但是,当您执行self.data\u source
(相当于Graph.data\u source
)时,您正在调用Graph
类本身上的方法:data\u source
,该方法未定义;因此出现了错误。只能在Graph类的对象上调用该方法
如果要创建图形的新实例化,例如g=Graph.new
,则可以按预期执行g.data\u source
self.data_source
NoMethodError: undefined method `data_source' for
#<Class:0x0055dd1d71c6e0>