我知道Devise.friendly_token(20)
会创建一个20个字符的长密码。但是,我正在看这一行:
Devise.friendly_token[0,20]
我不明白这些参数的含义。我在看什么,这是一种出现在其他环境中的语法吗?
答案 0 :(得分: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中通常是可选的,并且在没有任何参数的情况下调用相关方法时几乎从不使用。
BTW,Devise.friendly_token
可以采用零个或一个参数:
.friendly_token(length = 20) ⇒ Object
随机生成友好字符串以用作令牌。默认情况下,长度为20个字符。
因此,您可以说Devise.friendly_token
使用默认length
或Devise.friendly_token(6)
来使用非默认长度。