2017-02-25 14 views
2

私はフェニックス1.3-devを見てみたかったです。私はrepositoryからフェニックスをクローンし、phoenix/installer/README.mdに続いてアーカイブを構築しました。 (参考)エリクシールフェニックスのHTMLジェネレータの文脈とは何ですか

フェニックス/インストーラ/ README.md

$ cd installer 
$ MIX_ENV=prod mix archive.build 
$ mix archive.install 

私はmix phx.new blogによって新しいフェニックスアプリを作成しましたが、私はmix phx.gen.html Post posts title body:textことにより、簡単なHTMLの足場を作成しようとしたとき、私は、エラーメッセージ、次のGET:

** (Mix) Expected the schema argument, ":\"Elixir.Company.companies\"", to be a valid module name 

mix phx.gen.html and mix phx.gen.json expect a context module name, 
followed by singular and plural names of the generated resource, ending 
with any number of attributes: 

    mix phx.gen.html Accounts User users name:string 
    mix phx.gen.json Accounts User users name:string 

The Accounts context serves as the API boundary for the given resource. 
Multiple resources may belong to a context and a resource may be 
split over distinct contexts (such as Accounts.User and Blog.User). 

私の質問は、contextモジュールを追加する理由です。どのように役立ちますか? あなたがこれについて何か知っているなら、私が理解できるようにユースケースを記述してください。

+0

をエラーメッセージが一目瞭然です自体。ビジネスロジックのような「エンティティ」は、データベースモデルと100%正確にマッピングするべきではありません。 – mudasobwa

答えて

4

コンテキストモジュールを使用すると、コントローラーからの独自のモジュールへのRepo呼び出しを削除できるため、懸念事項の分離が可能です。より多くの場合

、クリス・マッコードにより、この話を聞いてみてください。

https://www.youtube.com/watch?v=tMO28ar0lW8&index=1&list=PLE7tQUdRKcyaMEekS1T32hUw19UxzqBEo

とフェニックスのコードのコメントをチェックアウト:

https://github.com/phoenixframework/phoenix/blob/07f1bbc7627117adc23ec8355a88465859e4302d/lib/mix/tasks/phx.gen.context.ex

関連する問題