5302


railsのerb内で

[code]

    <%=raw "#{item.title}" %>
    
[/code]

等とした時に最大文字数を制限したいのですが、どうやれば簡潔に書けるでしょうか？  
出来れば下記のように末尾に省略した記号も付けたいところです。

長過ぎるアイテム名 > 長過ぎる…


CC BY-SA 3.0
2015-01-26T03:53:45.203
5299
2015-01-26T14:30:20.827
2015-01-26T14:30:20.827
30
525
question
ruby ruby-on-rails erb
erb内での文字列の長さを制限したい


truncateを使用してみてはどうでしょう。  
<http://railsdoc.com/references/truncate>


CC BY-SA 3.0
2015-01-26T04:00:06.293
5300
2015-01-26T04:00:06.293
7391
5299
answer


truncateメソッドがお探しのメソッドだと思います。

<http://railsdoc.com/references/truncate>

省略記号はomissionパラメータで指定します。（デフォルトは"..."）  
長さはlengthパラメータで指定します。（デフォルトは30）

[code]

    <%= truncate(item.title, omission: '・・・', length: 20) %>
    
[/code]

別件ですが、`raw`メソッド（それと`html_safe`メソッドも）を使うとXSS問題を引き起こしかねないので、使わない方ないいと思います。(絶対安全と言い切れる場合は別ですが)

参考情報

  * <http://asciicasts.com/episodes/204-xss-protection-in-rails-3>


CC BY-SA 3.0
2015-01-26T04:11:55.470
5302
2015-01-26T04:17:56.257
2015-01-26T04:17:56.257
85
85
5299
answer