2015-10-05 9 views
5

私はPhoenixを習得しようとしており、質問に遭遇しました。 Railsでは、.erbファイルに表示されている現在のレールのバージョンを取得するには、.eexファイルから関数を呼び出す方法

<%= Rails.version %> 

とすることができます。私はフェニックスでこれを行う方法についての質問、私はフェニックスで立ち上げしようとして

:application.get_key(:phoenix, :vsn) 

は残念ながら、これは自分の無知を強調して答えを得ました。私は.EEXファイルに

<%= :application.get_key(:phoenix, :vsn) %> 

を置くとき、私は

no function clause matching in Phoenix.HTML.Safe.Tuple.to_iodata/1 

を取得しようとする次のものを学ぶために私を助ける任意のドキュメントに私を指すください。ありがとうございました!

答えて

8

:application.get_envコールの形式でタプルを返す:

{:ok, '1.0.0'} 

Phoenix.HTML.Safeこのフォーマット(source)でタプルをデコードする機能を有していません。あなたは、コールからのバージョンを抽出する必要があります :

<%= :application.get_key(:phoenix, :vsn) |> elem(1) %> 

しかし、より良い方法は、ヘルパー関数を使用することです:

defmodule VersionHelper do 
    def version do 
    case :application.get_key(:phoenix, :vsn) do 
     {:ok, vsn} -> vsn 
     _   -> #raise or return null or something else 
    end 
    end 
end 

これは、その後VersionHelper.versionであなたのビューで呼び出すことができます - このphoenixがビューで使用するキーにバージョンのフェッチが関連付けられていないことを意味します。

+0

ありがとうございました!私はあなたの助けに感謝します。 –

関連する問題