0

这是我在 master 分支的 rails repo 中执行 bundle 时遇到的错误。

There was a SyntaxError while loading arel.gemspec: 
/home/apnabhzu/ruby/gems/bundler/gems/arel-3c429c5d86e9/lib/arel/table.rb:14: syntax
error, unexpected tLABEL
    def initialize(name, as: nil, type_caster: nil)
                            ^
/home/apnabhzu/ruby/gems/bundler/gems/arel-3c429c5d86e9/lib/arel/table.rb:14: Can't
assign to nil
    def initialize(name, as: nil, type_caster: nil)
                                 ^
/home/apnabhzu/ruby/gems/bundler/gems/arel-3c429c5d86e9/lib/arel/table.rb:125: syntax
error, unexpected keyword_end, expecting $end from
  /home/apnabhzu/ruby/gems/bundler/gems/arel-3c429c5d86e9/arel.gemspec:3:in `<main>'

我在下面列出了环境详细信息:

  • 红宝石版本 - 1.9.3p429
  • Rails 版本 - 5.0.0.alpha
  • 捆绑器版本 1.10.6

我不知道为什么我会得到这个,有什么可能的解决方法?

4

1 回答 1

0

为什么要尝试为nil参数赋值?

未提供参数时使用默认参数。

如果您将其提供为 nil,那么它将是 nil。

如果要设置默认值,即使传递了 nil,并且仍然允许在没有参数的情况下调用该方法,则需要将默认值设置为 nil 并使用“或等于”运算符:

def initialize(name,as=nil)
 as ||= "Your value"
 puts as
end
于 2015-11-17T11:08:38.693 回答