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:对不起。我的错。回复我的编辑这不仅仅是鲍里斯的错。这个问题让人困惑,因为它包含了不必要的东西,比如
助手。问题应该是用户友好的,不包括任何不必要的内容。