我有一个像这样的课程:
Railsapp / lib / five9_providers / record_provider.rb:
class Five9Providers::RecordProvider < Five9Providers::BaseProvider
def add_record_to_list
variable = 'test'
end
end
然后,在控制器中,我有这个:
Railsapp /应用程序/控制器/five9_controller.rb:
class Five9Controller < ApplicationController
def import
record_provider = Five9Providers::RecordProvider.new()
record_provider.add_record_to_list
puts Five9Providers::RecordProvider::variable
end
end
但是,调用我的控制器方法import
只会返回:
NoMethodError (undefined method 'variable' for Five9Providers::RecordProvider:Class)
如何variable
从recover_provider.rb
班级中的班级访问five9_controller.rb
?
编辑:
即使@@variable
在myrecord_provider
和my中都使用时five9_controller
,我仍然无法访问该变量。我这样称呼它:puts @@variable
。
按照书面规定,您不能。variable
是实例方法的本地对象,任何方法外部的Ruby表达式都无法访问它。
在相关点上,术语“类变量”通常用于表示形式为的变量@@variable
。
更新:作为对“编辑”语句的响应,如果您在类中更改variable
为@@variable
,则可以使用从类外部访问该变量的技术,但是@@variable
对它们的裸引用不是其中之一。仔细阅读您在评论中引用的问题的答案,以获取更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句