如何以凤凰形式传递变更集?
这是控制器的摘录:
def new(conn, _params) do
changeset = Blog.change_post(%Post{})
render(conn, "new.html", changeset: changeset)
end
但是我得到这个错误
key :user not found in: %{}
这是我的帖子更改集:
def changeset(post, attrs) do
post
|> cast(attrs, [:title, :content, :is_published])
|> validate_required([:title, :content])
|> put_slug()
|> put_assoc(:user, attrs.user)
end
答案 0 :(得分:1)
您的问题似乎是您的“ attrs”没有密钥:user,而您正在尝试通过“ attrs.user”这一行对其进行访问。
如果我猜到了,我想说您应该将参数传递给函数“ change_post”,例如“ Blog.change_post(%Post {},params)”,这样您就可以将这些参数传递给变更集的创建