Как сохранить значение в условном выражении и вызвать его в ruby - PullRequest
0 голосов
/ 12 марта 2020

Метод

def myname(generate_name)
  if generate_name
    name = SecureRandom.urlsafe_base64(6)   
    name //ex:abcdef

Вызов

myname(true)    //output abcdef
myname(false)   //expected output abcdef

В моем коде я должен использовать myname(true) для создания уникального имени каждый раз, когда вызывается функция.

Вопрос: мне нужно, чтобы значение "abcdef" было выводом при вызове myname(false)

Ответы [ 3 ]

3 голосов
/ 12 марта 2020

Я бы сделал что-то вроде этого:

def myname(re_generate = false)
  @_myname = SecureRandom.urlsafe_base64(6) if @name.nil? || re_generate
  @_myname
end
2 голосов
/ 12 марта 2020

Сохранить это значение как переменную экземпляра:

def myname(generate_name)
  return @name unless generate_name
  @name = SecureRandom.urlsafe_base64(6)
end
0 голосов
/ 12 марта 2020

Попробуйте метод, описанный ниже -

def myname(generate_name)
  return SecureRandom.urlsafe_base64(6) if generate_name

  'abcdef'
end
...