2016-05-03 11 views
0

私はfull_name(user)ヘルパー関数を書いており、それをテンプレートで使用したいと考えています。テンプレートでヘルパー関数を使用する

<%= full_name(@current_user) %>をテンプレートで使用しようとしましたが、undefined function full_nameエラーが表示されます。テンプレートでこの関数を使用するにはどうすればよいですか?

ウェブ/ビュー/ user_helpers.ex

defmodule MyApp.UserHelpers do 
    alias MyApp.User 

    def full_name(%User{first_name: first_name, 
         last_name: last_name, 
         honorific_prefix: honorific_prefix, 
         honorific_suffix: honorific_suffix}) do 
    [honorific_prefix, first_name, last_name, honorific_suffix] 
    |> Enum.reject(&(&1 == "")) 
    |> Enum.join(" ") 
    end 
end 

答えて

3

ヘルパーはどのような方法で特別ではない、彼らは単に機能を含むモジュールです。

<%= MyApp.UserHelpers.full_name(@current_user) %> 

をまたはテンプレートがビューにコンパイルされているので、関数がの範囲で利用できるようになります(ビューにインポート:あなたは(モジュール名を含む)関数の完全な名前を使用するか必要がありますテンプレート):

MyApp.UserView do 
    use MyApp.Web, :view 
    import MyApp.UserHelpers 
    ... 
end 

は、次に、あなたが使用することができます。

<%= full_name(@current_user) %> 
関連する問題