在我的Phoenix 0.10.0应用程序中,我跑了
mix phoenix.gen.resource Job jobs job_name:string job_url:string company_url:string location:string notes:string
通过添加resources
行router.ex
并运行mix ecto.migrate
进行跟进。
通过这些更改,只要我填写所有字段,从Web界面创建新记录就可以正常工作。如果我将其中一个留空,那么会出现一条错误消息,说“哎呀,出了点问题!"在浏览器中。
我想让笔记留空。我怎么能这样做?
答案 0 :(得分:2)
在cast
的定义中,changeset
的第三个参数中列出了必填字段,因此请删除那里不需要的字段,并将它们添加到最后的可选参数列表中:
git diff
diff --git a/web/models/job.ex b/web/models/job.ex
index 2d6303b..323b114 100644
--- a/web/models/job.ex
+++ b/web/models/job.ex
@@ -18,6 +18,6 @@ defmodule JobHunt.Job do
with no validation performed.
"""
def changeset(model, params \\ nil) do
- cast(model, params, ~w(job_url), ~w())
+ cast(model, params, ~w(job_url), ~w(job_name company_url location notes))
end
end
(编辑。)