生成菜谱样板文件
前面的章节里,我们完成了后端系统最重要的部分:用户。接下来我们要进入菜谱模块的开发。
我们先来确认下,菜谱有哪些属性需要保存:
name
string
菜谱名
必填
title
string
节目名
必填
season
integer
第几季
必填
1
episode
integer
第几集
必填
1
content
text
内容
必填
user_id
integer
关联用户 id
必填
这里我们可以直接使用 mix phx.gen.html
命令来生成菜谱相关的所有文件:
我们先按照提示把 resources "/recipes", RecipeController
加入 web/router.ex
文件中:
但请不要着急执行 mix ecto.migrate
,我们有几个需要调整的地方:
注: 运行了的话可使用 mix ecto.rollback
回撤修改
新建的
priv/repo/migrations/20170206013306_create_recipe.exs
文件中,有如下一句代码:on_delete
决定recipe
关联的user
被删时,我们要如何处置recipe
。:nothing
表示不动recipe
,:delete_all
表示悉数删除,这里我们使用:delete_all
。新建的
lib/tv_recipe/recipes/recipe.ex
文件中,有一句代码要替换:因为
Recipe
与User
的关系是双向的,所以我们需要在user.ex
文件中增加一句:我们需要在
recipe.ex
文件中给season
与episode
设置默认值:
现在,我们可以执行 mix ecto.migrate
了:
我们运行下测试看看:
新生成的测试目前悉数通过。
上一章:安全限制
下一章:Recipe 属性开发
最后更新于