将多个字符串传递给ruby starts_with?

Gar*_*ows 14 ruby string ruby-on-rails

我有这个代码

if self.name.starts_with?('Bronze') || self.name.starts_with?('Silver') ||self.name.starts_with?('Gold')
Run Code Online (Sandbox Code Playgroud)

有没有办法一次性传递所有这些字符串而不是大量的OR,因为我可能需要扩展它?

fal*_*tru 22

String#start_with?接受任意数量的参数.你不需要使用||.

'Silver medal'.start_with?('Bronze', 'Silver', 'Gold')
# => true
'Hello medal'.start_with?('Bronze', 'Silver', 'Gold')
# => false
Run Code Online (Sandbox Code Playgroud)