方法

时间:2016-06-30 17:06:52

标签: ruby

这是在Ruby 2.1.8上。

我有以下方法:

def self.notify(methods=[], user, message_key, notifiable_id=nil, notifiable_type=nil)
  # Do some stuff
end

当我尝试使用此方法并传入有效值时,出现以下错误:

SyntaxError:
: syntax error, unexpected '=', expecting ')'
...er, message_key, notifiable_id=nil, notifiable_type=nil)
...                               ^
: Can't assign to nil
...message_key, notifiable_id=nil, notifiable_type=nil)
...   

对于我的生活,我无法弄清楚为什么。如果我从方法参数中的=nilnotifiable_id中删除了notifiable_type,那么一切正常。

FWIW将methods分配给空数组不是问题。如果我没有指定或将其分配给nil,我会遇到同样的问题。

任何想法都赞赏。

1 个答案:

答案 0 :(得分:1)

您为'方法'定义了默认值。参数但是没有用户或message_key的默认值。在具有默认值的参数之后,如果没有默认值,则不能有任何参数。