ruby-on-rails – 不了解类,模块和类<< self方法
发布时间:2020-12-16 19:19:10 所属栏目:百科 来源:网络整理
导读:我有以下代码: class MyClass module MyModule class self attr_accessor :first_name def myfunction MyModule.first_name = "Nathan" end end endend 当我像这样调用方法myfunction时,它工作正常: me = MyClass::MyModule.myfunction= "Nathan" me= "Nat
我有以下代码:
class MyClass module MyModule class << self attr_accessor :first_name def myfunction MyModule.first_name = "Nathan" end end end end 当我像这样调用方法myfunction时,它工作正常: > me = MyClass::MyModule.myfunction => "Nathan" > me => "Nathan" 但是如果我删除了类<<自我并添加一个自我. myfunction的前缀,它不起作用. 例如: class MyClass module MyModule attr_accessor :first_name def self.myfunction MyModule.first_name = "Nathan" end end end > me = MyClass::MyModule.myfunction NoMethodError: undefined method `first_name=' for MyClass::MyModule:Module 我正在努力理解班级<<自我方法.我认为这是一种增加自我的方式.它内部的所有方法的前缀,但如果这是真的,如果我删除它并为每个方法前缀为self,为什么它不起作用.手动? 在此先感谢您的帮助. 解决方法
这是因为你的attr_accessor:first_name也包含在类<<自. 要按照你建议的方式做,你可以像这样使用mattr_accessor:
require 'active_support' class MyClass module MyModule mattr_accessor :first_name def self.myfunction MyModule.first_name = "Nathan" end end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |