我需要创建一个表单,用户可以同时编辑Paper的多个记录。现在我正在使用嵌入式架构,所以Ecto可以为我做演员:
defmodule EmbSchema do
embedded_schema do
has_many :papers, Paper
end
def changeset(emb_schema, attrs) do
emb_schema
|> cast(attrs, [])
|> cast_assoc(:papers, with: &Paper.classify_changeset/2)
end
以及用于呈现表单的默认HTML帮助程序
<%= inputs_for f, :papers, fn p -> %>
唯一的问题是我收到警告
invalid association `papers` in schema EmbSchema: associated schema Paper does not have field `emb_schema_id`
这当然是正确的,但对我的用例无关紧要。
由于这感觉有点像黑客,还有其他方法来模拟这个吗?