Ruby 如何以字符串格式获取方法的名称
我正在调用Ruby 如何以字符串格式获取方法的名称,ruby,string,method-names,Ruby,String,Method Names,我正在调用Some\u other\u method内部Some\u method。我想以字符串格式将名称Some\u method传递给Some\u other\u method。我怎么做?我应该用什么来代替问号作为参数 def Some_method ... Some_other_method (?) end 你应该用这个。从文档中: 作为obj中的接收者查找命名方法,返回方法对象(或引发NameError)。方法对象在obj的对象实例中充当闭包,因此实例变量和self的值仍然可用
Some\u other\u method
内部Some\u method
。我想以字符串格式将名称Some\u method
传递给Some\u other\u method
。我怎么做?我应该用什么来代替问号作为参数
def Some_method
...
Some_other_method (?)
end
你应该用这个。从文档中:
作为obj中的接收者查找命名方法,返回方法对象(或引发NameError)。方法对象在obj的对象实例中充当闭包,因此实例变量和self的值仍然可用
> user = User.first
=> #<User id: 1, email: "aslam@mapunity.in", created_at: "2011-05-24 07:17:51", updated_at: "2011-06-02 05:28:37", username: "admin">
> meth = user.method(:email)
=> #<Method: User(#<Module:0x9ceff3c>)#_email>
> meth.name
=> :email
> meth.name.to_s
=> "email"
>user=user.first
=> #
>meth=用户方法(:电子邮件)
=> #
>冰毒名称
=>:电子邮件
>meth.name.to\s
=>“电子邮件”
使用:
以符号形式返回当前方法的名称。如果在方法外部调用,则返回nil
例如:
def say_your_name
puts __method__.to_s
end
如果您对符号而不是字符串感到满意,则可以将
改为_
。这与要求相反。问题是要求将方法更改为字符串。您正在使用符号/字符串作为方法。对。我同意。更新了答案以反映更改。