这个正在运作
[: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
由于使用{ ... }
语法而导致错误。为什么呢?
答案 0 :(得分:8)
这可能是因为该方法除了一个块之外还带有其他参数,并且你省略了括号。
以这种方式尝试:
define_method("#{env.to_s}?") { settings.environment == env }