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 に答える