2017-02-25 1 views
2

Ich wollte Phoenix 1.3-dev betrachten. Ich klon phoenix von repository und folgte dem phoenix/installer/README.md um Archiv zu bauen.Was ist Kontext in Elixier Phoenix HTML-Generator

phoenix/installer/README.md (Referenz)

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

habe ich ein neues Phoenix-App von mix phx.new blog aber als ich versuchte, ein einfaches HTML-Gerüst von mix phx.gen.html Post posts title body:text dann erhalte folgend i Fehlermeldung zu erzeugen:

** (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). 

Meine Frage ist warum sollte ein context Modul hinzufügen? Wie und wo es hilft? Wenn Sie etwas darüber wissen, beschreiben Sie bitte einen Anwendungsfall, damit ich es verstehen kann.

+0

Die Fehlermeldung ist ziemlich selbsterklärend selbst. "Entitäten" sollten nach Geschäftslogik nicht zu 100% genau auf die Datenbankmodelle abgebildet werden. – mudasobwa

Antwort

4

Das Kontextmodul ermöglicht es uns, Repo-Anrufe von der Steuerung zu ihrem eigenen Modul zu entfernen, so dass es zu einer Trennung zwischen Bedenken kommen kann.

Weitere, versuchen von Chris McCord zu diesem Vortrag hören:

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

und die Kommentare in Phoenix Code überprüfen:

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

Verwandte Themen