0

This one is working

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

but this is not

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

it causes the error because of using { ... } syntax. why?

sawa
  • 165,429
  • 45
  • 277
  • 381
Alexandre
  • 13,030
  • 35
  • 114
  • 173

1 Answers1

8

It is probably because the method takes other arguments besides a block, and you're omitting parentheses.

Try it this way:

define_method("#{env.to_s}?") { settings.environment == env }
Gosha A
  • 4,520
  • 1
  • 25
  • 33