2017-02-12 7 views
0

Я знаю, что Devise.friendly_token(20) создает 20-символьный длинный пароль. Тем не менее, я смотрю на эту линию:Array-like аргумент для 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 использовать по умолчанию length или Devise.friendly_token(6) использовать длину не по умолчанию.