0

这个正在工作

[: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

由于使用{ ... }语法,它会导致错误。为什么?

4

1 回答 1

8

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

试试这种方式:

define_method("#{env.to_s}?") { settings.environment == env }
于 2013-01-06T09:26:48.123 回答