2013-07-30 2 views
-2

Я пытаюсь проверить условие:Невозможно проверить, если объект Рубин капитализируются

name = gets.chomp 
if name.capitalized == name  
    puts 'some text' 
else 
    puts name.capitalize + 'some text' 

им получать эту ошибку в терминале:

test.rb: 6: в <main>': undefined method заглавными "для" имени ": String (NoMethodError)

+1

И это правильно. Нет такого метода, как «заглавная». –

+0

В чем вопрос? – sawa

+0

@sawa Разве это не очевидно? – JJJ

ответ

1
name = gets.chomp 
if name.capitalize == name 
     puts 'some text' 
else 
     puts name.capitalize + 'some text' 
end 
0

Это String#capitalize. Попробуйте это.

Это опечатка if name.capitalized изменить его if name.capitalize

+0

все еще не работает. –

+0

@HarisKumalic снова какая ошибка? –

1

Если добавить capitalized? метод String:

class String 

    def capitalized? 
    chars.first == chars.first.upcase 
    end 

end 

Вы сможете проверить, если строка капитализируются и использовать что в вашей логике.

'Ruby'.capitalized? 
#=> true 

РЕДАКТИРОВАТЬ: Кажется, вы просто пытаетесь извлечь из строя строку, а не проверять. В этом случае:

'ruby'.capitalize 
#=> 'Ruby' 

Должен делать то, что вам нужно.

Смежные вопросы