Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Ruby变量名中使用字符串?_Ruby On Rails_Ruby_String_Variables_Dynamic Variables - Fatal编程技术网

Ruby on rails 如何在Ruby变量名中使用字符串?

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” #当然可以: 说明:将方法发送到接收器(即“调用”该方法)。与任何方法调用一样,如果

我有一个字符串要用作变量名的一部分。具体而言,在Rails路由路径中:

<%= 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