私はこのようなサブスクリプションを持っています。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)'です。この関連付けは、モデル「タイプ」の1つではありません。 –
まあ、私は "それは夜の真ん中で、私はこれに疲れました"解決策は、 'cast_assoc'を削除し、' user_id'を必要なパラメタのリストに追加することです。まともな一時的な回避策です。 –