0

Rails 3.2因此,在将遗留项目从我们的4.2 一个视图 (erb) 内部迁移时,我遇到了一个小问题,代码 ( Rails 3.2)

html_safe(truncate(job_profile.description + '&nbsp;&nbsp;<font color="#999">[ ' + list.join(', ') +' ]</font>', :length => 100))

产生以下文本:

Rails_3_version

If it's not clear job_profile.descriptionresolves to Testand 同样list.join(', ')English Listening Comprehension 现在 Rails 4.2 中的相同代码产生以下内容:

Rails_4_version

尝试了许多选项来重现原始结果,但没有成功。建议?

4

2 回答 2

0

好的,我想我找到了一个解决方案,使用包含特殊字符的truncateover会产生问题,当包括和内联样式在内的整个文本由于截断而被缩短时。html_safenbsp;

切换顺序html_safetruncate在一定程度上解决了这个问题。现在它会先截断然后应用html_safe。但是当包括所有特殊字符的总长度增加了我的截断限制时,仍然会产生不良结果。稍加努力就产生了几乎正确的结果。

html_safe(job_profile.description.truncate(100) + '&nbsp;&nbsp;<font color="#999">[ ' + truncate(list.join(', '), length: 100-(job_profile.description.length)) +' ]</font>')

考虑到...每个截断产生的三个点,再进行一点定制,并且可以根据需要获得确切的结果。

于 2016-12-14T09:24:58.623 回答
0

改为这样做

truncate(job_profile.description + '&nbsp;&nbsp;<font color="#999">[ ' + list.join(', ') +' ]</font>', :length => 100).html_safe

或者

raw(truncate(job_profile.description + '&nbsp;&nbsp;<font color="#999">[ ' + list.join(', ') +' ]</font>', :length => 100))

希望有帮助!

于 2016-12-14T07:20:21.670 回答