рельсы разбивают вставленный код на строки и отображают - PullRequest
0 голосов
/ 26 февраля 2010

Допустим, у меня есть приложение rails, в котором код вставляется в текстовое поле содержимого, как показано ниже.

Вставленный код

Person name
Person name
Person name
Person name

Он помещается в базу данных с соответствующими новыми строками после каждой строки в соответствии с журналом моего сервера.

Что я хочу сделать, так это в действии show. Я хочу вывести этот текст после удаления пробелов между именами, удаления двойных имен и их расположения в алфавитном порядке.

Я также хочу добавить тег html option вокруг них.

Я уже написал программу на Java для этого, используя наборы. Мне было интересно, как подойти к этому в рельсах. Я бы предположил, что код для этого будет идти в контроллере.

Мой второй вопрос касался действия индекса. Он показывает все вставленные элементы. Как я могу показать только фрагмент того, что было на самом деле вставлено. Допустим, 20 символов длиной? Спасибо!

1 Ответ

1 голос
/ 26 февраля 2010

удаление пробелов между именами

понятия не имею, что означает «пробелы между», но я предполагаю, что вы хотите удалить «пустые строки»:

lines = code.split(/\n\r?/).reject { |l| l.strip.empty? }

удалить все двойные имена

lines = lines.uniq # or uniq!

поместите их в алфавитном порядке

lines = lines.sort # or sort!

добавить тег опции html вокруг них

options_str = lines.map { |l| "<option value='#{l}'>#{l}</option>" }.join('\n') # Do not forget to escape html

или, если хотите, короче:

code.split(/\n\r?/).reject { |l| l.strip.empty? }.uniq.sort.map do |l|
  "<option value='#{l}'>#{l}</option>"
end.join('\n')

Это должно дать вам совет.

Наиболее важной вещью для вас, вероятно, будет наличие String , Array и Enumerable документации перед вами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...