Я пытаюсь обернуть это, что находится в моем каталоге представлений, и часть навыков. :
<%= skill.description %>
Я читал http://api.rubyonrails.org раздел word_wrap и пробовал все следующее.
<%= word_wrap(skill.description.to_s, line_width: 8) %> #because description is stored as text in database
а также
<%= word_wrap(skill.description, line_width: 8) %>
вышесказанное просто не работает вообще. я binding.pry'd и получил эту ошибку:
ArgumentError: wrong number of arguments (0 for 1..2)
Я также попытался добавить это в свой application_controller:
def wrap(s, width=78)
s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n")
end
и обертывание на мой взгляд так:
<%= wrap(skill.description.to_s, 8) %>
Я даже попытался поместить метод wrap внутри моего user_controller и как последнюю попытку даже внутри моего файла представления. Какие-либо предложения?
Я заметил, что это работает на моей консоли:
wrap(skill.description, 8)
=> "code\nstuff,\nlearn\nprogramming\nin many\ndifferent\nlanguages\nright in\nyour\nbrowser\nfor free\n"
Я понял, что это хакерский способ сделать это, пожалуйста, дайте лучшее решение, если оно доступно.
(Это должно быть в состоянии пойти в модель, но ее не работает, поэтому я помещаю ее в представление, пока кто-то не сможет мне помочь в этом)
def wrap(s, width=78)
s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1<br>").html_safe
end
Здесь вид:
<%= wrap(skill.description.to_s, 65) %>
Примечание в Regex я изменил \n на
который похож на эквивалент новой строки на html-странице, тогда я сделал html-работу, добавив.html_safe. снова кажется беспорядочным, но он работает.
word_wrap добавляет \n. Используйте простой формат для замены \n с помощью html newlines:
<%= simple_format(word_wrap(skill.description, line_width: 8)) %>