2016-04-30 25 views
0

如何連接first_namelast_name並在full_name中添加honorific_prefix如果它不爲空?在視圖中連接字符串

defmodule MyApp.UserView do 
    use MyApp.Web, :view 
    alias MyApp.User 

    def full_name(%User{first_name: first_name, 
         last_name: last_name, 
         honorific_prefix: honorific_prefix}) do 
    first_name 
    |> String.upcase 
    end 
end 

回答

2

可以作爲一個集合拒絕空的處理這些元素加入他們的行列:

[honorific_prefix, first_name, last_name] 
|> Enum.reject(&(&1 == "")) 
|> Enum.join(" ") 
1

我只用if<>

def full_name(%User{first_name: first_name, 
        last_name: last_name, 
        honorific_prefix: honorific_prefix}) do 
    if honorific_prefix == "" do 
    "" 
    else 
    honorific_prefix <> " " 
    end <> first_name <> " " <> last_name 
end