2
をチェンジチェンジセットに渡し、エラーを確認してください。だから私は(エイリアシング後)でした:私は、その後など、belongs_to
持っていたモデルは、cast_assoc
で働いていたと思ったので、私は、関数名を変更しキャストエラーは私がチェンジを使用している間に問題を抱えている(チャットルーム用)以下のモデルを持っている
iex(4)> c = Room.changeset(%Room{}, %{})
** (RuntimeError) casting assocs with cast/3 is not supported, use cast_assoc/3 instead
(ecto) lib/ecto/changeset.ex:440: Ecto.Changeset.type!/2
(ecto) lib/ecto/changeset.ex:415: Ecto.Changeset.process_param/8
(elixir) lib/enum.ex:1151: Enum."-map_reduce/3-lists^mapfoldl/2-0-"/3
(elixir) lib/enum.ex:1151: Enum."-map_reduce/3-lists^mapfoldl/2-0-"/3
(ecto) lib/ecto/changeset.ex:391: Ecto.Changeset.do_cast/7
(tx_chat) web/models/room.ex:19: Elemental.TxChat.Room.changeset/2
。現在:
iex(4)> c = Room.changeset(%Room{}, %{})
** (FunctionClauseError) no function clause matching in Ecto.Changeset.cast_assoc/3
(ecto) lib/ecto/changeset.ex:518: Ecto.Changeset.cast_assoc(%Elemental.TxChat.Room{__meta__: #Ecto.Schema.Metadata<:built, "rooms">, created_by: #Ecto.Association.NotLoaded<association :created_by is not loaded>, created_by_id: nil, created_from_app: nil, id: nil, inserted_at: nil, members: #Ecto.Association.NotLoaded<association :members is not loaded>, name: nil, updated_at: nil}, %{}, [:name, :created_by, :created_from_app])
(tx_chat) web/models/room.ex:19: Elemental.TxChat.Room.changeset/2
私は間違っていますか?
あなただけcast_assoc' 'へ' cast'を変更しましたか? '|> cast(params、[:name、:created_from_app])|> cast_assoc(:created_by)'を試してください。 – Dogbert
それがうまくいくかどうか教えてください。私は解説付きの回答を投稿します。 – Dogbert
@Dogbertそれは謎が何だったのです!私は実際には単に 'cast'を' cast_assoc'に置き換えるだけで十分馬鹿でした。毎回私を助けてくれてありがとう、ありがとう。 。 。心から感謝する。回答を投稿して説明してください。 – dotslash