Скобки в вашем выражении:
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)
использовать длину не по умолчанию.