Ruby on rails 如何在Ruby变量名中使用字符串?
我有一个字符串要用作变量名的一部分。具体而言,在Rails路由路径中:Ruby on rails 如何在Ruby变量名中使用字符串?,ruby-on-rails,ruby,string,variables,dynamic-variables,Ruby On Rails,Ruby,String,Variables,Dynamic Variables,我有一个字符串要用作变量名的一部分。具体而言,在Rails路由路径中: <%= foo_path %> <%= bar_path %> 我希望路由名称的第一部分是动态的。大概是 @lol = "foo" <%= [@lol]_path %> # <-- This would really be the "foo_path" variable @lol=“foo” #当然可以: 说明:将方法发送到接收器(即“调用”该方法)。与任何方法调用一样,如果
<%= foo_path %>
<%= bar_path %>
我希望路由名称的第一部分是动态的。大概是
@lol = "foo"
<%= [@lol]_path %> # <-- This would really be the "foo_path" variable
@lol=“foo”
#当然可以:
说明:将方法发送到接收器(即“调用”该方法)。与任何方法调用一样,如果没有明确的接收者(例如some\u object.send'foo'
),当前上下文将成为接收者,因此调用send:foo
相当于self.send:foo
。事实上,Rails在幕后大量使用了这种技术()。还有更多
class Person
attr_accessor :pet
end
class Pet
def make_noise
"Woof! Woof!"
end
end
var_name = "pet"
p = Person.new
p.pet = Pet.new
(p.send "#{var_name}").make_noise
所以这里发生的是:
p.发送“some\u method”
调用p.some\u method
和括号使链接成为可能,即调用p.pet.最后发出噪音
。希望我明白了。epic!!就教育学而言,一个人如何学习这样的东西?当然,如果你打算使用Ruby,你可能会比尽可能多地阅读核心类的文档更糟糕,尤其是和(但确实很长)。别忘了,这是一本开创性的(免费的)Ruby书籍。我读过这些资料,但没有得到它们。当有人向我解释、教导或展示时,它会帮助我更多。或者至少让我能够理解。当一开始的时候,技术上的玻璃天花板对经验丰富的程序员来说是看不见的。这里有一个有效的链接:我认为编写p.send(var\u name).make\u noise
更为惯用。
class Person
attr_accessor :pet
end
class Pet
def make_noise
"Woof! Woof!"
end
end
var_name = "pet"
p = Person.new
p.pet = Pet.new
(p.send "#{var_name}").make_noise