我有这样的订阅。如何更新Ecto中的关系?
defmodule Rebirth.Subscription do
use Rebirth.Web, :model
schema "subscriptions" do
...
belongs_to :user, Rebirth.User
...
end
...
def update_user(model, params \\ :empty) do
model
|> cast(params, @required_fields, @optional_fields)
|> cast_assoc(:user, required: false)
end
end
我想用户当我运行它,我得到以下错误关联认购
所以,我想
Rebirth.Subscription.update_user(subscription, %{user_id: 1})
或
Rebirth.Subscription.update_user(subscription, %{user: user})
:
** (ArgumentError) unknown assoc `user` in `cast_assoc`
如何更新user_id?
谢谢!
我目前遇到同样的问题。:/ –
我还没有找到一种方法来解决它,但挖掘周围,我孤立问题'Ecto.Changeset.cast_relation/4'。具体来说,'Map.get(types,key)'。该协会不是“类型”模式之一。 –
那么,我的“这是半夜,我厌倦了这个”解决方案是删除'cast_assoc'并将'user_id'添加到所需的参数列表。这是一个体面的临时解决方法。 –