我试图将这个包含在我的视图目录中,并且是技能的一部分。 :
<%= 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) %>
上面的内容根本不起作用。我绑定了它并得到了这个错误:
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方法放在我的users_controller中,并作为最后一次尝试甚至在我的视图文件中。有什么建议吗?
我注意到它在我的控制台中有效:
wrap(skill.description, 8)
=> "code\nstuff,\nlearn\nprogramming\nin many\ndifferent\nlanguages\nright in\nyour\nbrowser\nfor free\n"
答案 0 :(得分:1)
我想出了一个hacky方法,如果有可用的话,请提供更好的解决方案。
(这应该可以进入模型,但它不起作用所以我把它放在视图中,直到有人可以帮助我)
def wrap(s, width=78)
s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1<br>").html_safe
end
以下是观点:
<%= wrap(skill.description.to_s, 65) %>
注意在正则表达式中我将\ n更改为一个有点像html页面中的换行符,然后通过添加.html_safe使html工作。再次看起来很混乱,但它确实有效。
答案 1 :(得分:0)
word_wrap添加\ n。使用简单格式将\ n替换为html换行符:
<%= simple_format(word_wrap(skill.description, line_width: 8)) %>