2017-03-16 41 views
1

我有一個名爲content的文本字段,我需要顯示一段摘錄。在Phoenix Framework中截斷文本

這樣做的最好方法是什麼?

喜歡的東西:

<% post.content.slice(0..50) %> 

是我心目中;然而,這給了我一個參數錯誤。

什麼是顯示內容文本字段的前50個字符的最佳方式?

另外 - 我可以創建一個摘錄字段時,數據創建/保存到數據庫中?

任何幫助表示讚賞。提前致謝。

+0

'String.slice(post.content,0..50)',請檢查這個答案 - HTTP ://stackoverflow.com/a/39395092/3102718 –

+1

還有一個包提供了truncate函數和更多:https://github.com/ikeikeikeike/phoenix_html_simplified_helpers – Johannes

回答

4
defmodule MyApp.StringFormatter do 

    def truncate(text, opts \\ []) do 
    max_length = opts[:max_length] || 50 
    omission = opts[:omission] || "..." 

    cond do 
     not String.valid?(text) -> 
     text 
     String.length(text) < max_length -> 
     text 
     true -> 
     length_with_omission = max_length - String.length(omission) 

     "#{String.slice(text, 0, length_with_omission)}#{omission}" 
    end 
    end 
end 

這就是我在我的應用程序中使用,我相信我無恥地從複製粘貼的地方,但它工作得很好,顯然,你可以將它修改爲您的需求。

但是,如果你不需要這個奇特ommision東西然後

String.slice(post.content, 0..50) 

應該只是罰款