这是在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)
...
对于我的生活,我无法弄清楚为什么。如果我从方法参数中的=nil
和notifiable_id
中删除了notifiable_type
,那么一切正常。
FWIW将methods
分配给空数组不是问题。如果我没有指定或将其分配给nil
,我会遇到同样的问题。
任何想法都赞赏。
答案 0 :(得分:1)
您为'方法'定义了默认值。参数但是没有用户或message_key的默认值。在具有默认值的参数之后,如果没有默认值,则不能有任何参数。