如何在Phoenix Form中传递具有put_assoc的变更集

时间:2018-12-01 07:50:54

标签: elixir phoenix-framework

如何以凤凰形式传递变更集?

这是控制器的摘录:

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

1 个答案:

答案 0 :(得分:1)

您的问题似乎是您的“ attrs”没有密钥:user,而您正在尝试通过“ attrs.user”这一行对其进行访问。

如果我猜到了,我想说您应该将参数传递给函数“ change_post”,例如“ Blog.change_post(%Post {},params)”,这样您就可以将这些参数传递给变更集的创建