使用Elixir / Phoenix,由于使用phoenix.gen.resource生成的CRUD进行严格验证,无法在Web UI中创建包含空字段的记录

时间:2015-03-11 05:44:31

标签: elixir phoenix-framework

在我的Phoenix 0.10.0应用程序中,我跑了

mix phoenix.gen.resource Job jobs job_name:string job_url:string company_url:string location:string notes:string

通过添加resourcesrouter.ex并运行mix ecto.migrate进行跟进。

通过这些更改,只要我填写所有字段,从Web界面创建新记录就可以正常工作。如果我将其中一个留空,那么会出现一条错误消息,说“哎呀,出了点问题!"在浏览器中。

我想让笔记留空。我怎么能这样做?

1 个答案:

答案 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

(编辑。)