Отображать первое слово в строке с Ruby Я использую ruby on rails, и я хочу отображать только первое слово строки. Мой сломанный код: <%= @user.name %> отображение Barack Obama. Я хотел бы, чтобы он отображал Barack, а в другом месте Obama. Как я могу разбить его и отобразить? Ответ 1 Короткий и читаемый: name = "Obama Barack Hussein" puts "#{name.partition(" ").first} - #{name.partition(" ").last}" # Obama - Barack Hussein и если порядок первого и последнего будет изменен на обратную сторону name = "Barack Hussein Obama" puts "#{name.rpartition(" ").last} - #{name.rpartition(" ").first}" # Obama - Barack Hussein Ответ 2 > "this is ruby".split.first #=> "this" Ответ 3 Допустим, что у вас есть: string = "Barack Obama" split_string = string.split() В рубиновой документации: Если шаблон опущен, значение $; используется. Если $; nil (что по умолчанию), str разбивается на пробелы, как если бы `` были указаны. после этого используйте split_string[0] # ==> Barack ou split_string[1] # ==> Obama Ответ 4 Вы можете просто: # `split` default is split by space `' '` <%= @user.name.split.first %> Я рекомендую дальнейшее чтение об декораторах, где вы можете определите метод, подобный (или вы также можете положиться на помощника): # It will give you 'Barack' def first_name name.split.first end # It will give you 'Obama' def last_name name.split.last end
Ответ 1 Короткий и читаемый: name = "Obama Barack Hussein" puts "#{name.partition(" ").first} - #{name.partition(" ").last}" # Obama - Barack Hussein и если порядок первого и последнего будет изменен на обратную сторону name = "Barack Hussein Obama" puts "#{name.rpartition(" ").last} - #{name.rpartition(" ").first}" # Obama - Barack Hussein
Ответ 3 Допустим, что у вас есть: string = "Barack Obama" split_string = string.split() В рубиновой документации: Если шаблон опущен, значение $; используется. Если $; nil (что по умолчанию), str разбивается на пробелы, как если бы `` были указаны. после этого используйте split_string[0] # ==> Barack ou split_string[1] # ==> Obama
Ответ 4 Вы можете просто: # `split` default is split by space `' '` <%= @user.name.split.first %> Я рекомендую дальнейшее чтение об декораторах, где вы можете определите метод, подобный (или вы также можете положиться на помощника): # It will give you 'Barack' def first_name name.split.first end # It will give you 'Obama' def last_name name.split.last end