Чисто из любопытства, есть ли более элегантный способ просто получить подстроку после первого символа = в строке? Следующие действия возвращают name=bob:
string = "option=name=bob"
string[string.index('=')+1..-1]
Он просто не очень похож на Ruby. Это также работает:
string.split('=', 2)[1]
Опять же, не очень элегантно, потому что split делает лишнюю ненужную работу. Отвечают ли регулярные выражения? Я чувствовал, что это немного переборщило для простоты нахождения единственной позиции символа в строке:
string.match('=(.*)')[1]
Я должен представить, что это чрезвычайно распространенная ситуация, не существует ли метод типа string.after('=')? Предоставляет ли Ruby on Rails что-то подобное, учитывая частоту, которую этот вид работы используется в Интернете?
ОБНОВЛЕНИЕ: забыл упомянуть ситуацию, когда символ не найден, nil или пустая строка должна быть возвращена. Но механизм регулярного выражения и метод .index требуют дополнительной проверки для этого (поэтому менее элегантного).