Ruby on rails 为什么我会收到一封“信”;未选中的tLABEL,应为';)';错误消息

Ruby on rails 为什么我会收到一封“信”;未选中的tLABEL,应为';)';错误消息,ruby-on-rails,Ruby On Rails,在第4行中,我收到错误消息“意外的tLABEL,期望'” 模块占位符 扩展ActiveSupport::关注点 def self.image_generator(height: , width:) "http://via.placeholder.com/#{height}x#{width}" end 结束您还有两个“:”不知道为什么 module Placeholder extend ActiveSupport::Concern def self.image_generator

在第4行中,我收到错误消息
“意外的tLABEL,期望'”

模块占位符 扩展ActiveSupport::关注点

 def self.image_generator(height: , width:)
 "http://via.placeholder.com/#{height}x#{width}"
 end
结束

您还有两个“
”不知道为什么

module Placeholder
  extend ActiveSupport::Concern

  def self.image_generator(height , width)
    "http://via.placeholder.com/#{height}x#{width}"
  end
end
除非您要传递关键字参数,否则如下所示:

module Placeholder
  extend ActiveSupport::Concern

  def self.image_generator(**args)
    "http://via.placeholder.com/#{args[:height]}x#{args[:width]}"
  end
end

除非要使用关键字参数,否则不需要冒号:

class Foo
  def image_generator(height: '60', width: '60')
    "http://via.placeholder.com/#{height}x#{width}"
  end
end

foo = Foo.new
p foo.image_generator # arguments aren't passed, it uses the "default" values
p foo.image_generator(height: 640, width: 480) # arguments are passed, it uses them

class Foo
  def image_generator(height, width)
    "http://via.placeholder.com/#{height}x#{width}"
  end
end

foo = Foo.new
p foo.image_generator # arguments not passed: it raises "wrong number of arguments"
p foo.image_generator(640, 480) # arguments are passed, it uses them

删除每个参数后的
,除非你想使用关键字参数,但你忘记了值。我想知道我是否复制了他的代码,它会抛出
NoMethodError
。嗯,很有趣。你刚刚测试了它吗?用纯Ruby,而不是Rails。让我也像往常一样尝试一下伟大的解决方案@SebastianPalma;)