2017-02-12 69 views
0

我知道Devise.friendly_token(20)会创建一个长度为20个字符的密码。然而,我在看这条线:Devise.friendly_token的类似数组的参数

Devise.friendly_token[0,20]

,我不明白这些参数的含义。我在看什么,这是一种在其他环境中出现的语法吗?

回答

1

在表达式中括号:

Devise.friendly_token[0,20] 
# -------------------^----^ 

被应用到返回值的Devise.friendly_token所以你有什么等价于:

token = Devise.friendly_token 
token[0,20] 

或:

Devise.friendly_token()[0,20] 
(Devise.friendly_token)[0,20] 

请记住,方法调用 - 圆括号在Ruby中通常是可选的,并且在没有任何参数的情况下调用该方法时几乎从不使用。


顺便说一句,Devise.friendly_token可以采取零或一个参数:

.friendly_token(length = 20) ⇒ Object

生成友好串随机用作令牌。默认情况下,长度为20个字符。

因此可以这样说Devise.friendly_token使用默认lengthDevise.friendly_token(6)使用非默认长度。