Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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 块不';不能使用`{}`_Ruby - Fatal编程技术网

Ruby 块不';不能使用`{}`

Ruby 块不';不能使用`{}`,ruby,Ruby,这个有效 [:dev1, :dev2, :dev3].each do |env| define_method "#{env.to_s}?" do settings.environment == env end end 但事实并非如此 [:dev1, :dev2, :dev3].each do |env| define_method "#{env.to_s}?" { settings.environment == env } end 由于使用了{…}语法,因此会导致错误

这个有效

[:dev1, :dev2, :dev3].each do |env|
  define_method "#{env.to_s}?" do  
    settings.environment == env
  end
end
但事实并非如此

[:dev1, :dev2, :dev3].each do |env|
  define_method "#{env.to_s}?" { settings.environment == env }
end

由于使用了
{…}
语法,因此会导致错误。为什么?

这可能是因为该方法除了块之外还接受其他参数,并且省略了括号

试着这样做:

define_method("#{env.to_s}?") { settings.environment == env }

我认为这应该毫无问题。您的上下文是RubyonRails,对吗?我已经编辑了标签。类似@Alexandre:对不起。我的错。回复我的编辑这不仅仅是鲍里斯的错。这个问题让人困惑,因为它包含了不必要的东西,比如
助手
。问题应该是用户友好的,不包括任何不必要的内容。