elixir phoenix html生成器的上下文是什么

时间:2017-02-25 22:00:28

标签: elixir phoenix-framework

我想看看凤凰1.3-dev。我从Displatch克隆凤凰,然后跟着phoenix/installer/README.md建立档案。

phoenix / installer / 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脚手架时,我收到以下错误消息:

** (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模块?它有何帮助? 如果您对此有所了解,请描述一个用例,以便我理解。

1 个答案:

答案 0 :(得分:7)

上下文模块允许我们从控制器中删除Repo调用到他们自己的模块,这样就可以将关注点分开。

更多信息,请尝试听听Chris McCord的演讲:

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