当我尝试初始化它时,它工作得很好
class Abc
def initialize(parent_id, user = nil, permission)
end
end
Abc.new(1 ,2, "some_permission")
但是当我这样做
class Abc
def initialize(parent_id, user = nil, permission, g_data = nil)
end
end
Abc.new(1,2,“ some_permission”,4)
我收到语法错误语法错误,意外的'=',期望的是')' 这是一个奇怪的行为,为什么它不使用两个默认值为nil
的参数答案 0 :(得分:2)
根据红宝石documentation,应将默认值分组。
默认值不需要首先出现,但是带有 默认值必须组合在一起。
因此,根据此规则,您的方法参数应如下列出:
class Abc
def initialize(parent_id, user = nil,g_data = nil,permission)
end
# OR
def initialize(parent_id, permission,user = nil,g_data = nil)
end
end