2016-03-01 11 views
23

私はmy/config/config.exsファイルに私のアプリのタイトルを設定したいと思います:Phoenix/Elixirの設定変数の読み方は?

config :my, My.Endpoint, 
    url: [host: "localhost"], 
    root: Path.dirname(__DIR__), 
    secret_key_base: "secret", 
    title: "My App" 

がどのようにテンプレートでそれを使用するtitle後で読むことができますか?ような何か:

<div> 
    Title of my app is <%= ??? %> 
</div> 

は私がconn.titleを試してみましたが、それはそのようなキーがありませんと言います。しかし、私が試みるときconn.secret_key_baseそれは動作します。どうして?

答えて

19

あなたが設定は、キーワードリストに設定値を追加するだけの機能がどのようにボンネットの下を見て、後でアプリでそれらにアクセスできるかどう

config/2が鍵を取るApplication.get_env(:my, :title)

+3

ありがとうございますが、動作しませんでした。それは空です。 –

+0

現在の環境設定を取得するには、dev.exs、prod.exs、およびtest.exsファイルが必要です。 –

+2

私のシステムでは、この回答は間違っています。適切な命題が与えられます(https://stackoverflow.com/a/35754803/118220)。 – Cheezmeister

2

を使用することができますキーワードリストにマップします。 config/3はキーを取得し、key_listを値として持つキーを追加します。

あなたがconfig/3を使用しているので、これはApplication.get_env(:my, My.Endpoint, :title)

41

get_env機能を働くだろうMy.Endpointの下で、あなたの設定をnamesapcesエリクシール/ Erlangのコアからのアプリケーションモジュールの一部です。

この関数は、アプリケーション環境内の特定のキーの値を返します。

Application.get_env(:my, My.Endpoint)[:title] 

三番目のパラメータが設定キーが存在しない場合、デフォルト値を渡すためのものです: は、ご使用の構成を考えると、あなたは、このようtitleプロパティにアクセスします。

関連する問題