0

Rails 3.2そのため、レガシー プロジェクトを4.2 ビューの 1 つ (erb) 内のコード ( Rails 3.2)に移行しているときに、小さな問題が発生しました。

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

次のテキストを生成します。

Rails_3_version

Rails 4.2 の同じコードは、次のようにjob_profile.description解決されます 。Testlist.join(', ')English Listening Comprehension

Rails_4_version

元の結果を再現するために多くのオプションを試しましたが、成功しませんでした。提案?

4

2 に答える 2

0

truncate特殊文字を含むオーバーを使用するhtml_safeと問題が発生し、切り捨てのためにインラインスタイリングを含むテキスト全体nbsp;が短くなったときに、解決策を見つけたと思います。

の順序を切り替える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>')

...切り捨てごとに生成される3 つのドットを考慮して、もう少しカスタマイズすると、必要に応じて正確な結果が得られます。

于 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 に答える